簡體   English   中英

在Django中將模型的多個實例顯示為表格

[英]Display multiple instances of a model as a table in Django

為了顯示模型的一個實例,我將其顯示為

tags_file.py

from django import template
register = template.Library()

@register.filter()
def as_table(model):
    ret = ""
    for name in model._meta.get_all_field_names():
        try:
            field = str(getattr(model, name))
            if field:
                ret += '<tr><td class="name">'+name+'</td><td class="field">'+field+'</td></td>'
        except AttributeError:
            pass
    return ret

display.html

{% load tags_file %}
<table>
    {{output|as_table|safe}}
</table>

views.py

return render_to_response('display.html',
                              {'output': obj,})

這將顯示我的模型的一個實例'obj'。 但是,如果我想顯示我的模型的多個實例,例如我有obj1,obj2,obj3,如何以表格格式顯示它們?

您可以傳遞對象列表,然后對其進行迭代:

return render_to_response('display.html',
                          {'outputs': [obj1, obj2, obj3],})

然后在模板中:

{% for obj in outputs %}
    {{ obj|as_table|safe }}
{% endfor %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM