【发布时间】:2011-05-26 09:43:02
【问题描述】:
我正在使用 django(v.1.2) 通用视图“list_detail”来打印存储在数据库中的一些对象(模型文章)。
在 urls.py 我添加了以下行
urlpatterns += patterns('django.views.generic.list_detail',
url(r'^article/(?P<slug>[\-\d\w]+)/$', 'object_detail', {'slug_field': 'title_slug', 'queryset': Article.objects.filter(is_public=True)}, name='article'),
)
在相应的模板 (article_detail.html) 中,我想打印迭代所有字段的文章。其实我写的是:
{% for k,v in object.fields %}
<p>{{k}}:{{v}}<p>
{% endfor %}
但它不起作用。有什么建议吗?
【问题讨论】:
-
答案是here
-
object.fields 中的对象是什么?
-
@Narendra Kamma "object: 对象。这个变量的名字取决于 template_object_name 参数,默认是 'object'。如果 template_object_name 是 'foo',这个变量的名字就是 foo"。 docs
-
我明白,您的模板中的对象是什么。您没有向名为“对象”的模板发送任何内容。您正在发送文章的查询集,这将是一个列表。
-
@Narendra Kamma:除了 extra_context 之外,“对象”还被发送到模板的上下文中。您不需要将其发送到模板,因为它位于“object_detail”视图中。但是您可以在 DrTyrsa 之前链接的 django 文档中阅读此内容。
标签: django django-templates django-views