gpt4 book ai didi

python - 返回列表的自定义 django 标签?

转载 作者:太空狗 更新时间:2023-10-30 03:03:49 24 4
gpt4 key购买 nike

我需要创建一个返回列表的自定义标签,然后我可以使用 {% 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 %}

是否需要对临时变量进行赋值?不能直接与其他一些标签助手一起使用吗?

最佳答案

我觉得这很好。

或者,出于某种原因,如果您无法通过 View 的上下文传递 product_list,则可以使用 inclusion tag如果你觉得这样更干净:

@register.inclusion_tag("tags/products_list.html")
def all_products():
return {'products_list': Product.objects.order_by('name') }

products_list.html

{% for product in products_list %} 
.........
{% empty %}
Empty list
{% endfor %}

在 html 文件中,你只需要做

{% all_products %}

关于python - 返回列表的自定义 django 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17837271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com