Так что я хочу создать метод в моем классе модели (я использую DetailView для представления), который возвращает предварительно утвержденный набор полей значения и удобные для пользователя имена, которые я могу вызвать в своем шаблоне. Этот метод должен проверить, не являются ли значения полей не стандартными значениями полей для каждого одобренного поля в модели, а затем возвращают список с парами значений полей/имени поля в мой шаблон.Итеративно извлечь значение поля экземпляра модели и значение по умолчанию, основанное на имени поля в Django 1.6
Проблема заключается в том, что я не могу найти способ извлечения field.value()
и field.default
, как показано в моем psuedocode ниже:
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()
возвращает СвязанныйObject, но документы Django не кажутся ясными относительно атрибутов и методов этого объекта.
Пожалуйста, помогите.
Что ожидают получить от 'field.value()' делать вы имеете в виду 'getattr (self, field.name)' –
Да, я просто не знал, что такое фактический код: P – user2667898