Как установить начальные значения для 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)

Затем, когда я вызываю поле, соответствующие поля пусты.

Ответы на вопрос(3)

Ваш ответ на вопрос