Дублирование значения ключа в многошаговой форме Django
Я пытаюсь реализовать многоступенчатую форму на Django и являюсь относительно новичком в этом языке, но испытываю трудности, когда дело доходит до сохранения данных в бэкенд. Любая помощь была бы очень признательна. Потратил около 8 часов, пытаясь разобраться в этом самостоятельно.
Мне нужно передать код и имя из модели Books в People, а затем вставить другую необходимую информацию на шаге 2, поскольку это отдельная модель таблицы. Существует внешний ключ, соединяющий People с Books через id.
Views.py
#Step1
def step1(request):
initial={'code': request.session.get('code', None),
}
form = PrimaryForm(request.POST or None, initial=initial)
if request.method == 'POST':
if form.is_valid():
return HttpResponseRedirect(reverse('main_app:step2'))
return render(request, 'step1.html', {'form': form})
#Step2
def step2(request):
form = SecondaryForm(request.POST or None)
if request.method == 'POST':
if form.is_valid():
form1 = form.save(commit=False)
form2 = People.objects.create(code=request.session['code'])
form1.save()
return HttpResponseRedirect(reverse('main_app:finished'))
return render(request, 'step2.html', {'form': form})
Forms.py
#models/forms
class PrimaryForm(forms.ModelForm):
class Meta:
model = People
fields = ('id','code','name',)
class SecondaryForm(forms.ModelForm):
class Meta:
model = Books
fields = ('type','title',)
exclude = ('book_id',)
Сообщение об ошибке
вставка или обновление таблицы "PEOPLE" нарушает ограничение внешнего ключа ПОДРОБНАЯ ИНФОРМАЦИЯ: Ключ (id_id_id)=(0) отсутствует в таблице "PEOPLE".
Код, имя должны проходить через формы и на шаге 2 сохранять информацию из обеих форм.