Из postman я пытаюсь отправить информацию о нескольких зонах в массиве типа zone = ["zone1", "Zone2"], но не могу сохранить ее в django.

Views.py

class EmployeeRegistrationViewSet(viewsets.ViewSet):
    """
    API endpoint that allows employee details to be viewed or edited.
    """
    def list(self, request):
        platform = EmployeeRegistration.objects.all()
        serializer = EmployeeRegistrationSerializer(platform, many=True)
        return Response(serializer.data)
    
    def create(self, request):
        api_status = False
        serializer = EmployeeRegistrationSerializer(data=request.data,many=True)

        if serializer.is_valid():
            api_status = True
            serializer.save()
        return Response(
            {
                "status": api_status,
                "errors": serializer.errors,
                "results": serializer.data,
            },
            status=status.HTTP_201_CREATED
            if api_status
            else status.HTTP_400_BAD_REQUEST,
        )

Url.py

router = routers.SimpleRouter()

router.register('employee_reg', views.EmployeeRegistrationViewSet, basename='employee_reg')

urlpatterns = router.urls

modal.py. -> заметка и город взяты из другого model.py -> address.modal.py

class AddressAbstractModel(BaseAbstractModel):
    address = models.CharField(max_length=255)
    pin_code = models.CharField(max_length=10)
    zone = models.ManyToManyField(Zone)
    state = models.ForeignKey(State, on_delete=models.CASCADE)
    city = models.ForeignKey(City, on_delete=models.CASCADE)

    class Meta:
        abstract = True
class Zone(BaseAbstractModel):
    name = models.CharField(max_length=64)

    def __str__(self):
        return self.name

Serializer.py

class EmployeeRegistrationSerializer(serializers.ModelSerializer):
    class Meta:
        model = EmployeeRegistration
        fields = '__all__'
        read_only_fields = [
            'is_active',
            'soft_delete',
            'created_by',
            'created_at',
            'last_modified_at',
            'deactivated_at',
        ]

данные почтальона

{
        "user_type": "Administrator",
        "code": "123456",
        "name": "Aashish Giri",
        "email": "hopeone476@gmail.com",
        "mobile_no": "9846695452",
        "alternate_mobile_no": "9846695452",
        "designation": "sss",
        "state": 1,
        "city": 1,
        "user": 2,
        "zone": [
            "1",
            "2"
        ]
    }

Я пытаюсь отправить данные как массив в поле многие-ко-многим, но мне не удалось сохранить данные Я получил ошибку типа - "detail": "JSON parse error - Got AttributeError when attempting to get a value for field user_type on serializer EmployeeRegistrationSerializer. Поле сериализатора может быть названо неверно и не совпадать с атрибутом или ключом экземпляра str. Оригинальный текст исключения был следующим: объект 'str' не имеет атрибута 'user_type'.

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