检查Django Rest Framework API LIST / DATABASE

时间:2018-04-09 06:59:38

标签: python django django-rest-framework

我想用这样的路径创建一个viewset / apiview:list/<slug:entry>/一旦我提供entry,它将检查数据库中是否存在该条目。

*注意:在list/上我有ViewSet的路径。我想知道我是否可以使用我要检查的特定字段更改id,所以我可以看到条目是否存在,但我想保持id不变,所以

我试过了:

class CheckCouponAPIView(APIView):
    def get(self, request, format=None):
        try:
            Coupon.objects.get(coupon=self.kwargs.get('coupon'))
        except Coupon.DoesNotExist:
            return Response(data={'message': False})
        else:
            return Response(data={'message': True})

但是我收到了一个错误:get() got an unexpected keyword argument 'coupon'

以下是路径:path('check/<slug:coupon>/', CheckCouponAPIView.as_view()),

在我的情况下,有什么好的做法可以适用吗?

1 个答案:

答案 0 :(得分:1)

尝试这样的事情怎么样

class CheckCouponAPIView(viewsets.ModelViewSet):
    # other fields
    lookup_field = 'slug'


来自官方DRF Doc

  

lookup_field - 应该用于执行的模型字段   单个模型实例的对象查找。默认为pk