Userserializer запрашивает группы и разрешения пользователей

Я пытаюсь создать employees под компанию, как показано ниже, но Userserializer выдает ошибки для groups и user_permissions

Models.py

class Employee(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
    company = models.ForeignKey(Company, on_delete=models.CASCADE)
    name = models.CharField(max_length=500, default=0)
    email = models.EmailField(max_length=500, default=0)
    phone = models.CharField(max_length=500, default=0)
    city = models.CharField(max_length=500, default=0)
    role = models.CharField(max_length=100, default='View')   #View/CRUD
    created = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    groups = models.ManyToManyField(Group, blank=True)

Views.py

class EmployeeCreateAPIView(CreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    permission_classes = (permissions.AllowAny,)

    def post(self, request, format=None, **kwargs):
        data = {}
        for key in request.data:
            data[key] = request.data[key]

        print("data", data)

        serializer = UserSerializer(data=data)
        print("pre serializer ", serializer)        ##### this

        if serializer.is_valid():
            print("s data", serializer.data)
            Employee.objects.create(user_id=serializer.data["id"], company=Company.objects.get(pk=data['company']),
                                    name = serializer.data['first_name'] + ' ' + serializer.data['last_name'],
                                    email=serializer.data['email'], )
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Где оператор печати pre seriliazer показывает следующее:

 UserSerializer(data={'first_name': 'Ejaz', 'last_name': 'Khan', 'username': 'ash', 'email': 'ekhan5347@gmail.com', 'password': '9', 'confirm': '9', 'company': 5}):
    id = IntegerField(label='ID', read_only=True)
    password = CharField(write_only=True)
    last_login = DateTimeField(allow_null=True, required=False)
    is_superuser = BooleanField(help_text='Designates that this user has all permissions without explicitly assigning them.', label='Superuser status', required=False)
    username = CharField(help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, validators=[<django.contrib.auth.validators.UnicodeUsernameValidator object>, <Unique
Validator(queryset=User.objects.all())>])
    first_name = CharField(allow_blank=True, max_length=30, required=False)
    last_name = CharField(allow_blank=True, max_length=150, required=False)
    email = EmailField(allow_blank=True, label='Email address', max_length=254, required=False)
    is_staff = BooleanField(help_text='Designates whether the user can log into this admin site.', label='Staff status', required=False)
    is_active = BooleanField(help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', label='Active', required=False)
    date_joined = DateTimeField(required=False)
    is_admin = BooleanField(required=False)
    company = PrimaryKeyRelatedField(allow_null=True, queryset=Company.objects.all(), required=False)
    groups = PrimaryKeyRelatedField(help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', many=True, queryset=Group.objects.all(), required=False)
    user_permissions = PrimaryKeyRelatedField(help_text='Specific permissions for this user.', many=True, queryset=Permission.objects.all(), required=False)
Вернуться на верх