【问题标题】:django dynamic template link dictonary to object fieldsdjango 动态模板链接字典到对象字段
【发布时间】:2013-12-21 12:39:00
【问题描述】:

我正在开发一个动态模板,我希望也能够包含它的最后一部分。我的问题:我得到了与对象字段相关的 x 数量的字段。但是当我传递另一个模型对象时,它应该显示其他字段。

示例: 模型 1 显示对象名称、类别、已批准 模型 2 显示对象名称、属性、

对于其他变量,我制作了一个包含信息的字典,问题是,我不知道如何将对象字段链接到它。 字典发送到模板:

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 个对象

希望我能很好地解释我的问题。

谁能帮帮我?

【问题讨论】:

    标签: django templates object dictionary field


    【解决方案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" %}
    

    【讨论】:

    • 谢谢,我去看看
    • 没问题 - 如果您在 django-tables2 上提出问题,请更新您的问题!
    • 一个问题,一切似乎都很清楚,但我的表格总是在 botem 处提供一个列表,其中包含我的对象数量,并在您使用页面时保留下一个/上一个。我怎样才能删除/编辑这个?
    猜你喜欢
    • 2013-03-31
    • 2012-07-17
    • 2011-10-21
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 2011-12-17
    • 2021-09-19
    • 1970-01-01
    相关资源
    最近更新 更多