Django Rest API Models Problem неожиданный аргумент ключевого слова 'is_staff'
у меня ошибка ExtendedUser() got an unexpected keyword argument 'is_staff'
Это мой model.py
class ExtendedUser(AbstractBaseUser):
objects = UserManager()
id = models.AutoField(primary_key=True)
first_name = models.CharField(max_length=100)
last_name= models.CharField(max_length=100)
username = models.CharField(max_length=100)
email = models.CharField(max_length=100)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
password = models.CharField(max_length=50)
def __str__(self):
return str(self.first_name)
и это мой сериализатор
class RegisterSerializer(serializers.ModelSerializer):
class Meta:
model = ExtendedUser
fields = ['id','first_name','last_name','password','email']
extra_kwargs = {'password': {'write_only': True}}
def create(self, validated_data):
user = ExtendedUser.objects.create_user(validated_data['first_name'], validated_data['email'], validated_data['password'])
return user
В чем проблема, как избежать этой проблемы? Я не хочу использовать поле is_staff
Сериализаторы
from rest_framework import serializers
from django.contrib.auth.models import User
class UserSerializer(serializers.ModelSerializer):
password = serializers.CharField(max_length=65, min_length=8, write_only=True),
email = serializers.EmailField(max_length=255, min_length=4, required=True),
first_name = serializers.CharField(max_length=255, min_length=2, required=True)
last_name = serializers.CharField(max_length=255, min_length=2, required=True)
class Meta:
model = User
fields = ['username', 'first_name', 'last_name', 'email', 'password']
def validate_email(self, email):
existing_email = User.objects.filter(email=email).first()
if existing_email:
raise serializers.ValidationError("Someone with that email, address has already registered. Was it you?")
return email
def create(self, validated_data):
user = User.objects.create_user(**validated_data)
return user
VIEW
from rest_framework.views import APIView
from .serializers import UserSerializer
from rest_framework.response import Response
from rest_framework import status
class RegisterView(APIView):
serializer_class = UserSerializer
def post(self, request):
serializer = UserSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
УРЛЫ
from .api_view_register import RegisterView
urlpatterns = [
path('register/', RegisterView.as_view())
]
