我需要創建一個自定義標籤返回一個列表,然後我可以通過{% for item in custom_tag_returning_list %}
。自定義django標籤返回列表?
現在我已經使用* 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 %}
是否需要對臨時變量進行賦值?不能直接與其他標籤助手一起使用?
爲什麼你不能發送這個在視圖的上下文? – karthikr
你認爲這是什麼錯誤?這正是分配標籤的用途。根本不是黑客。 –
你可以用一個普通的標籤和一個'{%empty%}'標籤來做到這一點,但是就像丹尼爾說的那樣,這對我來說看起來很好。 –