Jak ustawić początkowe wartości dla ModelForm, gdy podano także instancję

Wygląda na to, że jeśli modelForm otrzyma instancję, ignoruje wszystkie podane wartościinitial i zamiast tego ustawia ją na wartość instancji - nawet jeśli ta instancja jest pustym rekordem modelu.

Czy istnieje sposób na utworzenie formularza za pomocą instancjii czy ustawił początkowe dane?

Potrzebuję go, ponieważ zapisuję powiązane rekordy i nie wydają się poprawnie zapisywać, chyba że ModelForm otrzyma instancję podczas tworzenia.

Jestem pewien, że odpowiedź na to pytanie jest prosta i po prostu brakuje mi czegoś oczywistego.

Oto odpowiedni kod:

w widoku:
form = form_class(person=person, conference=conference, initial=initial, instance=registration)

gdzie jest form_classRegistrationForm a następnie w formularzu rejestracyjnym:

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)

Następnie, gdy wywołam pole, powiązane pola są puste.

questionAnswers(3)

yourAnswerToTheQuestion