Возможный дубликат:
стек Q / A
В вашем примере, если вы используете его только один раз, я предполагаю, что это та же производительность.
Но если для какого-то случая вам придется "get_Products" дважды, это пустая трата доступа к БД.
Контекст для меня - это обычный способ. Писать теги шаблонов можно только тогда, когда мне нужно получить что-то очень конкретное c, например, запрос с 3 различными моделями, для которых требуется l oop.
. Посмотрите на мой пример:
@register.simple_tag
def get_skipper_in_training_finish_datetime(training, user):
skipper = training.get_skipper_in_training(user)
if skipper:
return skipper.finish_datetime
У меня есть 3 разные модели в запросе активности, и только у одной есть "finish_datetime"
Использует свой вид со всеми моими тегами шаблона для этого приложения
{% load utils %}
{% regroup activities by start_date|date:'d-m-Y' as activities_by_date %}
{% for start_date in activities_by_date %}
{% for activity in start_date.list %}
...
{% if "Training" in activity.model_name %}
<script>
{% get_skipper_in_training_finish_datetime activity user as skipper_finish %}
document.write($.format.toBrowserTimeZone("{{ skipper_finish |date:'c' }}", "HH:mm:ss"))
</script>
{% elif activity.end_date %}
<script>document.write($.format.toBrowserTimeZone("{{ activity.end_date|date:'c' }}", "dd-MM-yyyy"))</script>
{% else %}
-
{% endif %}
...
{% endfor %}
...
{% endfor %}
Django Документы не относятся к производительности, когда речь идет о тегах шаблонов
Пользовательские теги и фильтры шаблонов
Но, как вы можете видеть, это вопрос логики c и сложных использование модели.
Надеюсь, что смогу помочь