Мне было интересно, можно ли использовать destroy с другими параметрами в GenericViewSet.
Вот так: curl DELETE https://localhost/api/custom-url?first_param=123&second_param=1
вместо этого: curl УДАЛИТЬ https://localhost/api/custom-url/1
Я попытался переопределить метод уничтожения, но это не сработало:
class ExampleViewSet(mixins.ListModelMixin,
mixins.RetrieveModelMixin,
mixins.CreateModelMixin,
mixins.DestroyModelMixin,
viewsets.GenericViewSet):
queryset = My_model.objects.all()
serializer_class = MySerializerSerializer
def destroy(self, request, *args, **kwargs):
first_param = kwargs.get('user_id')
second_param = kwargs.get('season_id')
try:
instance = My_model.objects.get(first_field=first_param, second_field=second_param)
except ObjectDoesNotExist:
return Response(status=status.HTTP_304_NOT_MODIFIED)
self.perform_destroy(instance)
return Response({'message':'yes!!!'}, status=status.HTTP_200_OK)