我有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函数可以做同样的事情,但我在文档中找不到它。
答案 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