2

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

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

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

4

1 回答 1

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
于 2013-08-23T17:23:52.073 回答