Size: a a a

Django [ru] #STAY HOME

2021 February 23

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Artem Gubatenko
> потому что это кривая реализация простой идеи
а что кривого?
1 это сложнее чем написать метод
2 это менее гибко чем написать метод
3 это менее читаемо чем написать метод
источник

JT

James Town in Django [ru] #STAY HOME
Nikolay Cherniy
{% for category in post.categories.all %}
{% if forloop.first %}
{{ category.name }}
{% endif %}
{% endfor %}
Это писать, при условии, что во views.py  такое: categories = category.objects.all() ?
источник

JT

James Town in Django [ru] #STAY HOME
Nikolay Cherniy
но это костыль конечно, лучше сделать метод в модели который возвращает нужную категорию и в темплейте обращаться к нему
а как это сделать?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Artem Gubatenko
> потому что это кривая реализация простой идеи
а что кривого?
то есть в данном конкретном случае это не сложная логика, это по сути возможность не делать дополнительного поля типа main_category и писать логику для его автоматического заполнения, то есть фактически это не выходит за пределы задач модели. Для более гибкой реализации, если это нужно делать не в одном месте правильней писать вместо одинкового запроса отдельный менеджер, то есть опять же оставлять это в модели. Да и то что ты сам запрос рисуешь в модели не так чтобы преносит логику в контроллер, это для самоуспокоеения. А метод в модели простой удобный и понятный способ реализации
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nikolay Cherniy
1 это сложнее чем написать метод
2 это менее гибко чем написать метод
3 это менее читаемо чем написать метод
🤔
1 - возможно дело привычки, но нифига не сложно
2 - согласен, но потенциально влечет за собой неучтенный запрос для каждого объекта Post
3 - имхо, дело в уровне знании ОРМ
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Artem Gubatenko
🤔
1 - возможно дело привычки, но нифига не сложно
2 - согласен, но потенциально влечет за собой неучтенный запрос для каждого объекта Post
3 - имхо, дело в уровне знании ОРМ
ты не видишь разницу в сложно и сложнее, то что одному кажется сложно, другому просто, на это ориентироваться нельзя, а вот сложнее это гораздо более объективно
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nikolay Cherniy
то есть в данном конкретном случае это не сложная логика, это по сути возможность не делать дополнительного поля типа main_category и писать логику для его автоматического заполнения, то есть фактически это не выходит за пределы задач модели. Для более гибкой реализации, если это нужно делать не в одном месте правильней писать вместо одинкового запроса отдельный менеджер, то есть опять же оставлять это в модели. Да и то что ты сам запрос рисуешь в модели не так чтобы преносит логику в контроллер, это для самоуспокоеения. А метод в модели простой удобный и понятный способ реализации
> Для более гибкой реализации, если это нужно делать не в одном месте правильней писать вместо одинкового запроса отдельный менеджер
+++

Но часто это сложно, спрашивающим)
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Artem Gubatenko
> Для более гибкой реализации, если это нужно делать не в одном месте правильней писать вместо одинкового запроса отдельный менеджер
+++

Но часто это сложно, спрашивающим)
ну так это оставит логику в рамках модели, чем метод хуже чем это?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
James Town
Это писать, при условии, что во views.py  такое: categories = category.objects.all() ?
нет, это при условии что у тебя приходит пост в шаблон
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nikolay Cherniy
ну так это оставит логику в рамках модели, чем метод хуже чем это?
в моем представлении модель != менеджер модели

все запросы - в менеджер
модель - маппер данных из БД
источник

JT

James Town in Django [ru] #STAY HOME
Nikolay Cherniy
нет, это при условии что у тебя приходит пост в шаблон
а что нужно во views еще дописать, чтобы завелось?
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
ну и точка вызова соответствующего менеджера
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
James Town
а как это сделать?
в модели пост пишешь def get_first_category(self):
return self.categories.first()
в шаблоне post.get_first_category
ВНИМАНИЕ все названия переменных выдуманы и совпадения с твоим кодом случайны, перепроверь, а не копируй
источник

F

Fox in Django [ru] #STAY HOME
Чем постгрес лучше sqlite?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Artem Gubatenko
в моем представлении модель != менеджер модели

все запросы - в менеджер
модель - маппер данных из БД
ок, в твоем представлении в MVC менеджер куда относится?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Fox
Чем постгрес лучше sqlite?
чем внедорожник лучше чем легковой авто?)
источник

F

Fox in Django [ru] #STAY HOME
Nikolay Cherniy
чем внедорожник лучше чем легковой авто?)
Если в джанго
источник

DT

Dmitry Tishenko in Django [ru] #STAY HOME
Добрый вечер, подскажите пожалуйста кто работал с google easy maps. Я хочу передать ему данные из модели, поле contact_location. Но когда я передаю {% easy_map "{{el.contact_location}}" 400 400 %} выдаёт левые координаты. Подскажите как можно нормально передать данные
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Fox
Если в джанго
если в джанго на боевом проекте тебе подойдет постгрес, а скюэльлайт - нет
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nikolay Cherniy
ок, в твоем представлении в MVC менеджер куда относится?
в M 😄
только почему мы тогда запросы прямо в модели не херачим, заморачиваемся с менеджерам и тд?

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