[Answered ]-View saving to same model but different instances – not working

1πŸ‘

βœ…

Both have the same field names. You can avoid that by working with a prefix=…:

if request.method == 'POST':
    form1 = PersonUpdateForm(request.POST, prefix='person', instance=person)
    form5 = MedicalPersonUpdateForm(request.POST, prefix='medical', instance=medical_emergency_person)
    if form1.is_valid() and form5.is_valid():
        form1.save()
        form5.save()
        return redirect('name-of-some-view')
    
else:
    form1 = PersonUpdateForm(prefix='person', instance=person)
    form5 = MedicalPersonUpdateForm(prefix='medical', instance=medical_emergency_person)
context['personal_person_form'] = form1
context['personal_medical_emergency_person_form'] = form5

Note: In case of a successful POST request, you should make a redirect
[Django-doc]

to implement the Post/Redirect/Get pattern [wiki].
This avoids that you make the same POST request when the user refreshes the
browser.

Leave a comment