Я пытаюсь добавить параметры обновления в элементы списка. Так что если кто-нибудь выполнит запрос «PATCH», я получу детали и обновлю их. Это мой код для реализации
class SwitchListView(UpdateModelMixin, ListAPIView):
serializer_class = serializers.SwitchSerializer
lookup_field = 'home_id'
def get_queryset(self):
home_id = self.kwargs.get('home_id', None)
if home_id is None or int(home_id) < 0 or \
self.request.user.pk != models.Home.objects.filter(pk=home_id)[0].user.pk:
return models.Switch.objects.none()
query = models.Switch.objects.filter(home=models.Home.objects.filter(pk=home_id))
return query
def get(self, request, *args, **kwargs):
return super(SwitchListView, self).get(request, *args, **kwargs)
def partial_update(self, request, *args, **kwargs):
print("Came here")
data = request.data['data']
for i in data:
query = self.get_queryset().filter(i['pk'])
if query.exists():
query.switch_status = i['switch_status']
query.save()
return Response({'message': 'successfully updated switch!'})
Но здесь запрос к API принимает только GET, HEAD и OPTIONS. Я даже пытался добавить http_method_names = ('get', 'patch')
, но даже это не работает !!
Есть ли способ поместить запрос на исправление в представление?
Спасибо