我正在制作一个动态模板,我希望能够包含它的最后一部分。我的问题:我得到了与对象字段相关的x个字段。但是当我传递另一个模型对象时,它应该显示其他字段。
实施例: 模型1显示对象名称,类别,已批准 模型2显示对象名称,属性,
对于其他变量的东西,我制作一个包含信息的字典,问题是,我不知道如何将对象字段链接到它。 Dictonary发送到模板:
field_map = {'field1': 'Name', 'field2': 'Category', 'field3': 'Approved'}
模板:
{% if objects|length > 0 %}
<table style="padding: 3px;">
<tr style=" text-align: center;">
{% for key, value in field_map %}
<th>{{ value }}</th>
{% endfor %}
</tr>
{% for object in objects %}
<tr>
<td>{{ object.name }}</td>
<td>{{ object.category }}</td>
<td>{{ object.approved }}</td>
</tr>
但现在我想将对象字段添加到field_map字段中。 因为我将发送超过1个对象
希望我能够很好地解释我的问题。
有人能帮助我吗?
答案 0 :(得分:1)
您正试图重新解决已经解决的问题。请使用django-tables2在django中呈现表:https://github.com/bradleyayers/django-tables2
更新:回答OP关于如何删除或编辑分页页脚的评论:
如果您不希望对您的表格进行分页,那么只需将您的表格paginate=None
配置为RequestConfig
,就像这样:
table = TestTable(Test.objects.all())
RequestConfig(request, paginate=None).configure(table)
return render(request, 'test.html', {'table': table})
如果您想自己编辑页脚,则必须提供新的表格渲染模板。为此,您只需将table.html
的内容从此处https://github.com/bradleyayers/django-tables2/blob/master/django_tables2/templates/django_tables2/table.html复制到模板目录即可。然后,您可以根据自己的要求修改此文件,例如,分页部分位于文件末尾的{% if table.page %}
和{% endif %}
之间。
现在,在您创建自定义表格模板后,您需要使用此模板渲染表格。如果您将模板命名为mytable.html,则只需在普通模板中使用以下语法:
{% render_table mytable "mytable.html" %}