Django Rest Framework: использование destroy с другими параметрами, кроме pk - PullRequest
0 голосов
/ 26 мая 2020

Мне было интересно, можно ли использовать 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)
...