Моя форма Django выдает ошибку, когда я пытаюсь создать объект пользователя
В моей форме Sign up я попытался создать объект myuser из Django.contrib.auth.models вот изображение Он показывает ошибку
from django.contrib.auth.models import User
def signup(request):
if request.method == "POST":
fname = request.POST['fname']
lname = request.POST['lname']
email = request.POST['email']
pass1 = request.POST['pass1']
pass2 = request.POST['pass2']
myuser = User.objects.create_user( fname , email , pass1)
myuser.first_name = fname
myuser.last_name = lname
context = {}
return render(request, '/Users/tanajkhanuja/Desktop/bee/main/templates/main/Signup.html', context)
Ошибка, с которой вы столкнулись, означает, что вы пытаетесь создать пользователя с переменной, которую вы еще не назначили. Это происходит потому, что вы назначаете fname, lname, email, pass1 и pass2 только если это POST запрос, а для ввода этих значений в форму сначала делается GET запрос. Вам следует перенести создание myuser внутрь этого оператора if.
from django.contrib.auth.models import User
def signup(request):
if request.method == "POST":
fname = request.POST['fname']
lname = request.POST['lname']
email = request.POST['email']
pass1 = request.POST['pass1']
pass2 = request.POST['pass2']
myuser = User.objects.create_user( fname , email , pass1)
myuser.first_name = fname
myuser.last_name = lname
myuser.save()
context = {}
return render(request, '/Users/tanajkhanuja/Desktop/bee/main/templates/main/Signup.html', context)
После изменения значений полей пользователя необходимо также вызвать .save() для сохранения сделанных изменений