Форум сайта python.su
Помогите, пожалуйста, понимаю, что вопрос плевый, но ответ найти не могу.
Есть модель, содержащая некоторую функцию:
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)
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 = forms.CharField (max_length = 41, initial = instance.output_field)
NameError: name ‘instance’ is not definedКак сделать так, чтобы при редактировании формы в поле common_field подставлялось значение функции output_field?
Офлайн
Elapheinitial передается в __init__ формы при создании объекта. Это словарь “название поля”: значение.
Как сделать так, чтобы при редактировании формы в поле common_field подставлялось значение функции output_field?
Офлайн
Спасибо, добрый человек! Все оказалось довольно просто:
class MyViewUpdate(generic.edit.UpdateView): ... def get_initial(self): initial = super(MyViewUpdate, self).get_initial() initial['common_field'] = self.object.output_field return initial
Офлайн