在表格中显示django模型字段

时间:2013-07-17 22:33:19

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

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

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

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

1 个答案:

答案 0 :(得分: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