Pie*_*NAY 2 django templates django-templates django-models
我需要在模板中显示多个模型名称和对象
这是我的观点
def contents(request):
"""Lists Objects"""
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)
)
Run Code Online (Sandbox Code Playgroud)
我的模板
{% for objs in objects %}
<div class="object">
<div class="object_name">{{ get_verbose_name objs.0 }}</div>
<ul>
{% for obj in objs %}
<li>{{ obj }}</li>
{% endfor %}
</ul>
</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
还有我的模板过滤器
@register.simple_tag
def get_verbose_name(object):
return object._meta.verbose_name_plural
Run Code Online (Sandbox Code Playgroud)
这只工作,如果有至少一个obj为每个Model数据库。
如果没有数据,如何获取每个模型的详细名称?
您正在尝试从列表中的第一个对象获取模型。这样,如果这个对象不存在,你就不会得到任何东西。
尝试改用查询集:
{{ get_verbose_name objs }}
@register.simple_tag
def get_verbose_name(queryset):
return queryset.model._meta.verbose_name_plural
Run Code Online (Sandbox Code Playgroud)