我正在git://github.com/nathanborror/django-basic-apps.git
阅读Django应用程序博客的源代码。
您如何阅读以下Django代码?
{% tags_for_object object as tag_list %}
我的尝试:创建 tags_for_object 类型的变量 object ,并将变量重命名为 tag_list 。< / p>
对象显然基于文件blog / templates / inlines / default.html:
{% if object %}
{{ object }}
{% else %}
{% for object in object_list %}
{{ object }}
{% endfor %}
{% endif %}
将逻辑放到两步程序中的好处是:运行单个对象,否则循环遍历对象列表?
答案 0 :(得分:4)
看起来tags_for_object
是django-tagging应用程序中的模板标记。
来自django-tagging documentation:
tags_for_object:
检索
Tag
个对象的列表 与对象和商店相关联 它们在上下文变量中。用法:
{% tags_for_object [object] as [varname] %}
示例:
{% tags_for_object foo_object as tag_list %}
然后,您可以遍历模板中的tag_list
变量以显示标记。
{% tags_for_object foo_object as tag_list %}
<ul>
{% for tag in tag_list %}
<li>{{ tag }}</li>
{% endfor %}
</ul>
对于问题的第二部分,您可以正确理解代码。如果变量object
存在于上下文中(并且未计算为False),则会显示该变量。如果它在上下文中不存在(或者它的计算结果为False),那么代码将循环遍历objects
中的object_list
,并显示它们。
至于为什么你想要这样做,你必须查看使用inlines/default.html
的代码来计算出设计师的想法。