Из 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'.