Reputation: 1201
if RegistrationForm.is_valid() and employeeForm.is_valid(): TypeError: is_valid() missing 1 required positional argument: 'self'
I'm having this error, to which I cannot find the source. Where am I missing something?
@transaction.atomic
def create_view(request):
if request.method == 'POST':
user_form = RegistrationForm(request.POST)
profile_form = employeeForm(request.POST or None,request.FILES or None)
if RegistrationForm.is_valid() and employeeForm.is_valid():
user = RegistrationForm.save()
user.refresh_from_db()
profile_form = employeeForm(request.POST, instance=user.employeemodel)
profile_form.full_clean()
profile_form.save()
return redirect('emp_list')
else:
user_form = RegistrationForm()
profile_form = employeeForm()
return render(request,'create_employee.html',{'userform':user_form,'profileform':profile_form})
Upvotes: 0
Views: 1928
Reputation: 47364
Instead of class objects you should use instance objects when working with forms. So it should be user_form.is_valid() and profile_form.is_valid()
user_form = RegistrationForm(request.POST)
profile_form = employeeForm(request.POST or None,request.FILES or None)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.refresh_from_db()
profile_form = employeeForm(request.POST, instance=user.employeemodel)
profile_form.full_clean()
profile_form.save()
return redirect('emp_list')
Same for the save()
method: user = user_form.save()
Upvotes: 2