【问题标题】:Display django Model fields in a table在表格中显示 django 模型字段
【发布时间】:2013-07-16 16:38:51
【问题描述】:

我的模型有 30 多个字段,我想在表格中显示其中的 20 个。我知道有{{ form.as_table }},但是非形式模型有类似的功能吗?我目前正在使用

{% for name, value in article.get_fields %}
     <tr>
     {% if value %}
        <td>{{ name }} = {{ value }}</td> 
     {% endif %}
     </tr>
{% endfor %}

-其中get_fields 返回Article 的所有字段。这工作正常。我猜想有一个内置的 django 函数可以做同样的事情,但我在文档中找不到它。

【问题讨论】:

  • 目前还没有这样的实用程序。但是,您可以编写自己的 html 文件并通过模板标签进行渲染

标签: django python-2.7 django-models django-forms


【解决方案1】:

我同意@kathikr,模型类中没有内置函数可以为您执行此操作。

一种选择是继承 Model 并向其添加一个 as_table() 函数,该函数解析可用字段并在必要时使用 exclude 属性。

    def as_table(self):
            return "".join(["<tr><td>%s</td><td>%s</td></tr>" % (field.verbose_name, field.value_to_string(self)) for field in self._meta.fields if field not in self.exclude])

嗯,这可能不应该是单线

    def as_table(self):
        result = ""
        for field in self._meta.fields:
            if field not in self.exclude:
                result += "<tr><td>%s</td><td>%s</td></tr>" % 
                    (field.verbose_name, field.value_to_string(self))
        return result

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-20
    • 2018-11-19
    • 2013-08-28
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    相关资源
    最近更新 更多