Я использую Django 2.x
и Django REST Framework
.
У меня есть видовой набор, определенный как
class UserSettingViewSet(mixins.ListModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
viewsets.GenericViewSet):
serializer_class = UserSettingSerializer
permission_classes = (IsAuthenticated, AdminAuthenticationPermission)
def get_object(self):
user_setting = UserSetting.objects.get(user=self.request.user)
return user_setting
def get_queryset(self):
queryset = UserSetting.objects.filter(
user=self.request.user
)
return queryset
def update(self, request, *args, **kwargs):
iso3 = request.POST.get('country', None)
if iso3 is None or not iso3:
raise ValidationError({'country': 'Country iso3 is required'})
try:
country = Country.objects.get(iso3=iso3.upper())
except ObjectDoesNotExist:
raise ValidationError({'country': 'Country does not exists'})
user_setting = UserSetting.objects.get(user=request.user)
user_setting.country = country
user_setting.save()
return super(UserSettingViewSet, self).update(request, *args, **kwargs)
Когда я звоню update
из Angular
, он не принимает данные формы и выдает ошибку
{'country': 'Country iso3 is required'}
При отправке данных как ** form-data от почтальона работает нормально. **
Заголовок углового запроса:
![enter image description here](https://i.stack.imgur.com/feVVR.png)
в то время как у Почтальона
![enter image description here](https://i.stack.imgur.com/2tlX1.png)
Как настроить Django для приема данных JSON в PUT?