我需要在模板中显示多个模型名称和对象。
这是我的视图:
def contents(request):
"""Lists contents"""
objects = [
Model1.objects.all(),
Model2.objects.all(),
Model3.objects.all(),
Model4.objects.all(),
]
return render_to_response('content/contents.html', objs
, context_instance=RequestContext(request)
)
我有一个模板
{% for objs in objects %}
<div class="content">
<div class="title">{{ objs._meta.verbose_name }}</div>
<ul>
{% for obj in objs %}
<li>{{ obj }}</li>
{% endfor %}
</ul>
</div>
{% endfor %}
当然,
objs._meta.verbose_name
是无法使用的。有没有一种方法可以访问这个 verbose name 而不必为每个模型创建一个函数或为每个模型从视图分配该值?
{% get_verbose_name objs.0 %}
(如果没有值,不确定它是否有效)。 - Pierre de LESPINAY{{ obj|verbose_name }}
或者{{ obj.0|verbose_name }}
这样。 - Armando Pérez Marquésobjs
,则objs.0
可能未定义 :( - Pierre de LESPINAYreturn queryset.model._meta.verbose_name
,queryset 是整个结果集(而不是第一行)。 - Pierre de LESPINAY'str' object has no attribute '_meta'
错误。Django版本是1.7。 - Mikhail Batcer