在Django Rest Framework中实现必需的as_view参数

时间:2018-08-08 08:51:23

标签: django-rest-framework

我的应用程序中有一些视图,这些视图需要将关键字参数传递给as_view才能发挥作用:

url(r'^api/foobar/$',
    FoobarView.as_view(key='foobar'),
    name='foobar'),

视图本身以类似于以下方式的方式使用键:

class FoobarView(APIView):
    key = None

    def get(self, request):
        return Response({
            'foobar': self.key
        })

确保key关键字参数传递给as_view并触发错误的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

也许在您看来,覆盖as_view是否已设置检查。

类似这样的东西:

class FoobarView(APIView):
    key = None

    def get(self, request):
        return Response({
            'foobar': self.key
        })

    @classmethod
    def as_view(cls, **initkwargs):

        if 'key' not in initkwargs:
            raise ValueError

        return super().as_view(**initkwargs)

只需确定自己,如果缺少密钥,您到底想做什么。