Size: a a a

Django [ru] #STAY HOME

2020 April 28

I

InzGIBA in Django [ru] #STAY HOME
Artem Gubatenko
Это плохой совет. лучше отучайся так делать. Делать запросы в БД в шаблоне - плохо
есть линки на то, что это плохо?
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Dan Tyan
почему ?
потому что MVC/ MVT. шаблон для настройки отображения, а подгружать нужно все заранее
источник

DT

Dan Tyan in Django [ru] #STAY HOME
или reverse('delete', )
и вот на этом этапе получения строки урла возникает ошибка
источник

МС

Миркамал Самиев... in Django [ru] #STAY HOME
Dan Tyan
у тебя проблема не в самом урле
у тебя где то в шаблоне есть

{% url 'delete' pk=some.pk %}
там у меня все в порядке когда записи соответствующие id есть в таблице все работает , но вот когда такой записи в таблице нет то возникает ошибка
источник

DT

Dan Tyan in Django [ru] #STAY HOME
ну те

ты за то чтобы добавлять и переопределять

get_context_data
context['comments'] = self.object.comments.all()


вместо

{% for comment in obkect.comments.all %}
источник

МС

Миркамал Самиев... in Django [ru] #STAY HOME
я просто хочу узнать каким exception это обрабатывать
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Миркамал Самиев
я просто хочу узнать каким exception это обрабатывать
дело твое =)
ищи отлов исключения
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Dan Tyan
ну те

ты за то чтобы добавлять и переопределять

get_context_data
context['comments'] = self.object.comments.all()


вместо

{% for comment in obkect.comments.all %}
если это сообщение мне, то - да, за это
или как минимум, сделать prefetch_related, хотя это приучает писать методы из queryset в шаблоне и не заметишь как начнешь без подгрузки заранее делать запросы
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Artem Gubatenko
если это сообщение мне, то - да, за это
или как минимум, сделать prefetch_related, хотя это приучает писать методы из queryset в шаблоне и не заметишь как начнешь без подгрузки заранее делать запросы
не понял при чем тут prefetch и зачем он там вообще

а какая между ними разница кроме того что ты добавляешь метод в въюху?
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Dan Tyan
не понял при чем тут prefetch и зачем он там вообще

а какая между ними разница кроме того что ты добавляешь метод в въюху?
в данном случае разница - психологическая.

prefetch для примера

вьюха - это python код, в котором хорошо подготавливать данные для вывода в шаблоне

а шаблон - отображение. Вот зачем делать запросы из, по сути, HTML? И +еще нагружать шаблонизатор джанги, который и так не самый быстрый
источник

DT

Dan Tyan in Django [ru] #STAY HOME
И +еще нагружать шаблонизатор джанги, который и так не самый быстрый

ну вот это не аргумент от слова совсем =)
во первых потому что запрос будет делать в любом случае
делаться будет в обоих случаях одинаковый
И!!! в обоих случаях будет выполняться из шаблонизатора =) тада!!!
источник

DT

Dan Tyan in Django [ru] #STAY HOME
я имею ввиду sql запрос в базу
источник

DT

Dan Tyan in Django [ru] #STAY HOME
а вот prefetch это на самом деле аргумент =)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
ну и то что если шаблон пишет верстальщик
который не знаком с django
ему конечно проще использовать и понимать(что важно)

{% for comment in comments %}
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Dan Tyan
И +еще нагружать шаблонизатор джанги, который и так не самый быстрый

ну вот это не аргумент от слова совсем =)
во первых потому что запрос будет делать в любом случае
делаться будет в обоих случаях одинаковый
И!!! в обоих случаях будет выполняться из шаблонизатора =) тада!!!
почему из шаблонизатора? - Из-за ленивости quesryset'а?
На сколько я знаю шаблонизатор в джанго - это БОЛЬШАЯ регулярка, и я думал что запрос из вьюхи выполнится перед тем как он начнет отрабатывать,

а, если сделать из шаблона, то шаблонизатору нужно сначало оценить/разобрать html-файлик, и потом уже, в процессе так сказать, сделать запрос.

Я не прав?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Artem Gubatenko
почему из шаблонизатора? - Из-за ленивости quesryset'а?
На сколько я знаю шаблонизатор в джанго - это БОЛЬШАЯ регулярка, и я думал что запрос из вьюхи выполнится перед тем как он начнет отрабатывать,

а, если сделать из шаблона, то шаблонизатору нужно сначало оценить/разобрать html-файлик, и потом уже, в процессе так сказать, сделать запрос.

Я не прав?
Из-за ленивости quesryset'а

да
источник

DT

Dan Tyan in Django [ru] #STAY HOME
запрос будет выполняться при попытке получить данные
источник

DT

Dan Tyan in Django [ru] #STAY HOME
как работает шаблонизатор внутри честно не знаю
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Dan Tyan
запрос будет выполняться при попытке получить данные
ок
но остается психологический момент и MVC)
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
+ когда python код в одном месте - это легче дебажить/изменять
источник