Как установить начальные значения для ModelForm, когда экземпляр также задан
Кажется, что если ModelForm дан экземпляр, он игнорирует любые значения, которые вы предоставляетеinitial
и вместо этого устанавливает его в значение экземпляра - даже если этот экземпляр является пустой записью модели.
Есть ли способ создать форму с экземплярома также он установил начальные данные?
Мне это нужно, потому что яЯ сохраняю связанные записи, и они неПохоже, что сохранить правильно, если ModelForm не предоставляется экземпляр при создании.
я уверен, что ответ на этот вопрос прост, и яЯ просто упускаю что-то очевидное.
Вот соответствующий код:
в представлении:form = form_class(person=person, conference=conference, initial=initial, instance=registration)
где form_classRegistrationForm
а затем в регистрационной форме:
class RegisterForm(forms.ModelForm):
... fields here ...
def __init__(self, *args, **kwargs):
... other code ...
self.person = kwargs.pop('person')
super(RegisterForm, self).__init__(*args, **kwargs)
for key, in self.fields.keys():
if hasattr(self.person, key):
self.fields[k].initial = getattr(self.person, key)
Затем, когда я вызываю поле, соответствующие поля пусты.