【发布时间】:2014-11-02 22:33:20
【问题描述】:
所以我想在我的模型类中创建一个方法(我对视图使用 DetailView),它返回一组预先批准的字段值和用户友好名称,我可以在我的模板中调用它们。此方法必须检查字段值是否不是模型中每个已批准字段的默认字段值,然后将包含字段值/名称对的列表返回到我的模板。
问题是我找不到提取field.value() 和field.default 的方法,如下面的伪代码所示:
def displayFields(self):
approvedFields = [ ('field1','Field One'),
('field2','Field Two'),
('field3','Field Three')
]
resultFieldPairs = []
for fieldName in approvedFields:
field = self._meta.get_field_by_name(fieldName[0])
if field.value() != field.default:
resultFieldPairs.append(tuple([fieldName[1], field.value()]))
return resultFieldPairs
我可以从我得到的错误中看到 self._meta.get_field_by_name() 返回一个 RelatedObject,但 Django 文档似乎并不清楚这个对象的属性和方法。
请帮忙。
【问题讨论】:
-
期望从
field.value()得到什么你的意思是getattr(self, field.name) -
是的,我只是不知道实际的代码是什么:P
标签: django django-templates django-models