2011-10-17 27 views
2

我需要顯示幾個型號名稱模板&對象Django的 - 從模板標籤verbose_name

這裏是我的觀點

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 

這隻有至少有一個obj爲數據庫中的每個Model
如何獲取每個模型的詳細名稱(如果沒有數據)?

回答

4

您正試圖從列表中的第一個對象獲取模型。這樣,如果這個對象不存在,你將不會得到任何東西。

嘗試使用查詢設置,而不是:

{{ get_verbose_name objs }} 

@register.simple_tag 
def get_verbose_name(queryset): 
    return queryset.model._meta.verbose_name_plural 
+0

工作的感謝! –