Django - 来自模板标签的详细名称
Posted
技术标签:
【中文标题】Django - 来自模板标签的详细名称【英文标题】:Django - verbose_name from a template tag 【发布时间】:2011-12-09 04:36:48 【问题描述】:我需要在模板中显示多个模型名称和对象
这是我的观点
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)
)
我的模板
% 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 %
还有我的模板过滤器
@register.simple_tag
def get_verbose_name(object):
return object._meta.verbose_name_plural
仅当数据库中的每个 Model
至少有一个 obj
时,此方法才有效。
如果没有数据,如何获取每个模型的详细名称?
【问题讨论】:
【参考方案1】:您正试图从列表中的第一个对象中获取模型。这样,如果这个对象不存在,你什么也得不到。
尝试改用查询集:
get_verbose_name objs
@register.simple_tag
def get_verbose_name(queryset):
return queryset.model._meta.verbose_name_plural
【讨论】:
以上是关于Django - 来自模板标签的详细名称的主要内容,如果未能解决你的问题,请参考以下文章
将Django Choices表单字段的详细名称传递给查看上下文