Aldrin Saurov Sarker
Aldrin Saurov Sarker

Reputation: 213

Object is not being created

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

Answers (1)

Shri Hegde
Shri Hegde

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

Related Questions