I’ve rewritten my view to a FBV and updated template and I’m running into a few issues. I can now generate my forms but when I try to post I’m getting an error that person is required and I’m not sure how I set a Person in the template.
def Application_View(request):
if request.method == 'POST':
person = PersonForm(request.POST, prefix='person')
current_address = AddressForm(request.POST, prefix='current_address')
previous_address = AddressForm(request.POST, prefix='previous_address')
employment = EmploymentForm(request.POST, prefix='employment')
print("1 \n Person: {}\n Current Address: {}\n Previous Address: {}\n Employment: {}".format(person.errors, current_address.errors, previous_address.errors,employment.errors))
if person.is_valid() and current_address.is_valid() and previous_address.is_valid() and employment.is_valid():
person.save()
current_address.person = person.auto_id
current_address.save()
previous_address.person = person.auto_id
previous_address.save()
employment.person = person.auto_id
employment.save()
return HttpResponseRedirect('/thanks/')
else:
print("i am not valid")
else:
person = PersonForm(prefix='person')
current_address = AddressForm(prefix='current_address')
previous_address = AddressForm(prefix='previous_address')
employment = EmploymentForm(prefix='employment')
return render(request, 'base/application.html', {'person': person,
'current_address': current_address,
'previous_address': previous_address,
'employment': employment
})
1
Person:
Current Address: <ul class="errorlist"><li>person<ul class="errorlist"><li>This field is required.</li></ul></li></ul>
Previous Address: <ul class="errorlist"><li>person<ul class="errorlist"><li>This field is required.</li></ul></li></ul>
Employment: <ul class="errorlist"><li>person<ul class="errorlist"><li>This field is required.</li></ul></li></ul>
Another issue I’m having now is with my address model. I originally had it set up that the previous address was optional, however, since I’m using the new Address model everything is required on both instances.