Django Ошибка: Пробовал все, что предлагали все сайты, существующие в google, но все равно получаю "The given username must be set".
Я работаю над регистрацией пользователей для сайта электронной коммерции. Я не использую никаких forms.py и нет проблем с отступами. Я передаю простой JSON на postman в методе POST, чтобы проверить, работает он или нет, но я получаю ошибки. Ниже приведен мой код и ошибка. Буду благодарен за помощь.
Моя модель.py
from django.db import models
from django.contrib.auth.models import AbstractUser
import datetime
class User(AbstractUser):
created_at=models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.user.username
Мой View.py
class Register(APIView):
def post(self, request):
username = request.POST.get('username')
first_name = request.POST.get('first_name')
last_name = request.POST.get('last_name')
password = request.POST.get('password')
confirm_password = request.POST.get('confirm_password')
email = request.POST.get('email')
if password == confirm_password:
if Client.objects.filter(username = username).exists():
return Response({"message": "this username already exist"})
elif Client.objects.filter(email = email).exists():
return Response({"message": "This emaila address is already taken"})
else:
user= Client.objects.create_user(username = username, password =confirm_password,
email=email)
user.save()
else:
return Response({"message": "Try it again"}, 404)
Мой urls.py
from django.urls import path
from user_authentication.views import Login, Logout, Register
urlpatterns = [
path('login/', Login.as_view()),
path('logout/', Logout.as_view()),
path('register/', Register.as_view()),
]
Ошибка--- Значение исключения: Данное имя пользователя должно быть установлено
Internal Server Error: /register/
Traceback (most recent call last):
File "C:\Users\Lenovo\Documents\GitHub\E-commerce\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Lenovo\Documents\GitHub\E-commerce\venv\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Lenovo\Documents\GitHub\E-commerce\venv\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "C:\Users\Lenovo\Documents\GitHub\E-commerce\venv\lib\site-packages\django\views\generic\base.py", line 70, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Users\Lenovo\Documents\GitHub\E-commerce\venv\lib\site-packages\rest_framework\views.py", line 509, in dispatch
response = self.handle_exception(exc)
File "C:\Users\Lenovo\Documents\GitHub\E-commerce\venv\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
self.raise_uncaught_exception(exc)
File "C:\Users\Lenovo\Documents\GitHub\E-commerce\venv\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
raise exc
File "C:\Users\Lenovo\Documents\GitHub\E-commerce\venv\lib\site-packages\rest_framework\views.py", line 506, in dispatch
response = handler(request, *args, **kwargs)
File "C:\Users\Lenovo\Documents\GitHub\E-commerce\garments\user_authentication\views.py", line 40, in post
user= Client.objects.create_user(username = username, password =confirm_password, email=email)
File "C:\Users\Lenovo\Documents\GitHub\E-commerce\venv\lib\site-packages\django\contrib\auth\models.py", line 152, in create_user
return self._create_user(username, email, password, **extra_fields)
File "C:\Users\Lenovo\Documents\GitHub\E-commerce\venv\lib\site-packages\django\contrib\auth\models.py", line 137, in _create_user
raise ValueError('The given username must be set')
ValueError: The given username must be set
JSON, который я передаю: { "username": "bilalahmed" , "first_name": "Bilal", "last_name": "Ahmed", "password": "bilal1234", "email": "bilalahmed@example.com"}