Есть модель, содержащая некоторую функцию:
class MyModel(models.Model): Field1 = models.CharField(max_length=20) Field2 = models.CharField(max_length=20) def output_field(self): return '%s %s' % (self.field1, self.field2)
Есть форма, которая добавляет и редактирует объект модели. При этом в форму пользователь вводит не field1 и field2 по отдельности, а вместе. Затем, уже на уровне валидации поля, это поле разбивается с помощью split и в модель добавляются два поля. Примерный код формы:
class MyForm(forms.ModelForm): common_field = forms.CharField (max_length = 41) class Meta(object): model = MyModel fields = ('common_field') def clean_common_field(self): #создаем field1 и field2
Но при редактировании формы возникают проблемы - поле common_field оказывается пустым, т. е. при редактировании пользователю нужно каждый раз заполнять поле заново. Надо добавить initial и использовать там функцию output_field. Пытаюсь изменить поле так:
common_field = forms.CharField (max_length = 41, initial = instance.output_field)
NameError: name ‘instance’ is not definedКак сделать так, чтобы при редактировании формы в поле common_field подставлялось значение функции output_field?