Reputation: 213
I am trying to save two forms simultaneously and enter the data in another table.
if request.method == "POST":
u_form = UserForm(request.POST)
r_form = RestaurantForm(request.POST, request.FILES)
if u_form.is_valid() and r_form.is_valid():
user = u_form.save()
manager = Manager.objects.create(user=user)
manager.save()
r_form.save()
messages.success(request, f'Registration complete! You may login!')
return redirect('../login')
else:
messages.info(request, 'Invalid.')
return redirect('staff_registration')
else:
u_form = UserForm(request.POST)
r_form = RestaurantForm(request.POST, request.FILES)
return render(request, "insert_restaurant.html", {'u_form': u_form, 'r_form': r_form})
My manager class is :
class Manager(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
When I fill-up the form, and submit, there is no error, my user is created successfully. But, in my 'Restaurant' and 'Manager' table, no object is created.
Upvotes: 0
Views: 27
Reputation: 554
Once you save the u_form... authenticate the user.. and then pass that variable when creating the Manager object..
user = authenticate(username=//get from u_form, password=//get from u_form)
manager = Manager.objects.create(user=user)
Upvotes: 1