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)