リストを返すカスタム タグを作成する必要があります{% for item in custom_tag_returning_list %}
。
今、私はassign_tagメソッドを使用して次のハックを作成しましたが、それが正しい方法であるかどうかは疑問です:
from django import template
from product.models import Product
register = template.Library()
@register.assignment_tag
def all_products():
return Product.objects.all().order_by('name')
テンプレートでは、all_products
直接使用することはできませんが、最初にいくつかの変数に割り当てる必要があります:
{% all_products as all_products_list %}
{% if all_products_list %}
{% for product in all_products_list %}
...
{% endfor %}
{% endif %}
一時変数への割り当てを行う必要がありますか? 他のタグ ヘルパーで直接使用できませんか?