代码之家  ›  专栏  ›  技术社区  ›  damd

在django-rest框架中实现一个必需的as-view参数

  •  0
  • damd  · 技术社区  · 6 年前

    我的应用程序中有几个视图需要将关键字参数传递给 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 关键字参数传递给 作为视图 如果不是的话会触发一个错误?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Enthusiast Martin    6 年前

    也许,在您的视图中,重写为“查看复选框”。

    像这样:

    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)
    

    如果钥匙不见了,你就自己决定你到底想做什么。