ModelForm にインスタンスが与えられた場合、initial
そのインスタンスが空のモデル レコードであっても、指定した値を無視し、代わりにインスタンスの値に設定するようです。
インスタンスでフォームを作成し、初期データを設定する方法はありますか?
関連するレコードを保存していて、作成時に ModelForm にインスタンスが指定されていない限り、正しく保存されないように見えるため、必要です。
これに対する答えは簡単だと確信しており、明らかな何かが欠けているだけです。
関連するコードは次のとおりです。
ビューで:
form = form_class(person=person, conference=conference, initial=initial, instance=registration)
ここで、form_class はRegistrationForm
登録フォームにあります。
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)
次に、フィールドを呼び出すと、関連するフィールドは空です。