【问题标题】:Display multiple instances of a model as a table in Django在 Django 中将模型的多个实例显示为表格
【发布时间】:2016-01-13 10:24:39
【问题描述】:

为了显示我的模型的一个实例,我将其显示为,

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,我如何以表格格式显示它们?

【问题讨论】:

标签: python django django-models django-templates


【解决方案1】:

您可以传递一个对象列表,然后对其进行迭代:

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

然后在模板中:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 2010-10-06
    • 2017-07-29
    • 2011-09-08
    相关资源
    最近更新 更多