内联对象的Python / Django技术

时间:2009-12-15 22:38:06

标签: python django

我正在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 %}

将逻辑放到两步程序中的好处是:运行单个对象,否则循环遍历对象列表?

1 个答案:

答案 0 :(得分:4)

看起来tags_for_objectdjango-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的代码来计算出设计师的想法。