Моя форма 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() для сохранения сделанных изменений

Вернуться на верх