Как решить проблему ValueError : Данное имя пользователя должно быть установлено

Я пытаюсь зарегистрировать пользователя с помощью Python Django. Валидация осуществляется с помощью JavaScript. Когда пользователь вводит свои данные и нажимает кнопку регистрации, данные сохраняются в базе данных. Предположим, если пользователь нажмет на кнопку регистрации, не введя свои данные, я получу ошибку, как показано ниже.

ValueError at /Accounts/CandidateRegister/
The given username must be set
Request Method: POST
Request URL:    http://127.0.0.1:8000/Accounts/CandidateRegister/
Django Version: 4.0.2
Exception Type: ValueError
Exception Value:    
The given username must be set
Exception Location: C:\job\venv\lib\site-packages\django\contrib\auth\models.py, line 137, in _create_user
Python Executable:  C:\job\venv\Scripts\python.exe
Python Version: 3.9.7
Python Path:    
['C:\\job\\jobsite',
 'C:\\Users\\Student\\AppData\\Local\\Programs\\Python\\Python39\\python39.zip',
 'C:\\Users\\Student\\AppData\\Local\\Programs\\Python\\Python39\\DLLs',
 'C:\\Users\\Student\\AppData\\Local\\Programs\\Python\\Python39\\lib',
 'C:\\Users\\Student\\AppData\\Local\\Programs\\Python\\Python39',
 'C:\\job\\venv',
 'C:\\job\\venv\\lib\\site-packages']
Server time:    Tue, 19 Apr 2022 10:51:00 +0530

Я не понял, почему эта ошибка возникает даже при условии валидации JavaScript. Есть ли у кого-нибудь идеи, как решить эту проблему.

html

views.py

def candidateregister(request):
    User = get_user_model()
    if request.method=='POST':
        fname = request.POST.get('cafname')
        lname = request.POST.get('calname')
        email_phone = request.POST.get('caemorpn')
        password1 = request.POST.get('capassword1')
        password2 = request.POST.get('capassword2')
        terms = request.POST.get('cagridCheck')
        type = request.POST.get('catype')
        if terms == 'on':
            terms = True
        else:
            terms = False

        regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'

        if (re.fullmatch(regex, email_phone)):
            if (User.objects.filter(email=email_phone).exists()):
                messages.info(request, "Email ID Already Taken")
                return redirect('register')
            user = User.objects.create_user(first_name=fname,last_name=lname,password=password1,terms_and_conditions_confirmed=terms,type=type,email=email_phone,username=email_phone)
            user.save()
            send_action_email(user,request)
            messages.add_message(request, messages.SUCCESS, 'We sent you an Email to verify Your Account...')
            return redirect('login')
        else:
            print(email_phone)
            if (User.objects.filter(phone=email_phone).exists()):
                messages.info(request, "Phone number Already Taken")
                return redirect('register')
            user = User.objects.create_user(first_name=fname, last_name=lname, password=password1,terms_and_conditions_confirmed=terms, type=type, username=email_phone,phone=email_phone)
            user.save()

JavaScript

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