2017-11-14 17 views
0

私はビューの機能を使用するとき、私はエラーを取得し、ベローズは私のトレースバックです:例外TypeError:get_serializer_classは、(1つの)必要な位置引数不足している:「自己」

File "/Users/xxx/Desktop/xxx/Project/xxx/qiyun_admin_usermanage/api/views.py", line 40, in <module> 
    class UserListAPIView(ListAPIView): 
    File "/Users/xxx/Desktop/xxx/Project/xxx/qiyun_admin_usermanage/api/views.py", line 59, in UserListAPIView 
    serializer_class = get_serializer_class() 
TypeError: get_serializer_class() missing 1 required positional argument: 'self' 

私のviews.pyコードすなわち怒鳴る:

class UserListAPIView(ListAPIView): 
    """ 

    """ 
    queryset = User.objects.filter(is_admin=False, is_staff=False, is_superuser=False).exclude(status=4) 

    filter_backends = [SearchFilter, OrderingFilter] 
    search_fields = ['username', 'qq', 'email'] 
    pagination_class = UserPageNumberPagination 

    class Meta: 
     ordering = ['-id'] 

    def get_serializer_class(self): 
     if self.request.user.is_superuser: 
      return UserAdminListSerializer 
     else: 
      return UserListSerializer 

    serializer_class = get_serializer_class() # this is the line 59 

そして、私はdef get_serializer_class(self):法の前でこのラインserializer_class = get_serializer_class()を書く場合、私は エラーを見つけることができませんでしょう。

答えて

0

すでにget_serializer_classメソッドをオーバーライドしているので、serializer_class属性を定義する必要はありません。 http://www.django-rest-framework.org/api-guide/generic-views/#attributes

serializer_class - The serializer class that should be used for validating and deserializing input, and for serializing output. Typically, you must either set this attribute, or override the get_serializer_class() method.

からライン59

を削除します

関連する問題