Вот мой сценарий:
У меня две модели:
class Person(models.Model):
# --- model fields ---
class Qualification(models.Model):
owner = models.ForeignKey(Person, on_delete=models.CASCADE)
# --- other fields ---
И формы модели:
class PersonalForm(forms.ModelForm):
class Meta:
model = Person
fields = ['first_name', 'last_name', 'email', 'id_number', 'date_of_birth']
class IsQualifiedForm(forms.ModelForm):
class Meta:
model = Person
fields = ['is_qualified']
class QualificationForm(forms.ModelForm):
class Meta:
model = Qualification
fields = ['level', 'course_name', 'attainment']
И, наконец, мой вид мастера:
class Wizard(SessionWizardView):
template_name = 'demo/wizard_test.html'
form_list = [
("personal", PersonalForm),
("is_qualified", IsQualifiedForm),
("qualifications", QualificationForm),
]
def get_form_instance(self, step):
return self.instance_dict.get(step, None)
def done(self, form_list, **kwargs):
# What is the exact logic to be applied here to save the model forms concurrently?
return redirect('home')
Я пытаюсь сохранить форму, но возникают ошибки:
Когда я пытаюсь вызвать:
for form in form_list:
form.save()
в методе done()
, я получаю ошибка, потому что is_qualified
перехватывается как null на первом этапе.
Плюс, как мне установить значение поля owner
для текущего созданного человека?
Любая помощь будет будут признательны.