2017-11-14 1 views
0

ich Fehler, wenn ich die Funktion der Ansicht verwenden, ist der Balg meine Zurückverfolgungs:Typeerror: get_serializer_class() 1 erforderlich Positions Argument fehlt: 'Selbst'

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' 

Mein views.py Code dh unten:

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 

Und wenn ich diese Zeile serializer_class = get_serializer_class() in der Vorderseite def get_serializer_class(self): Methode schreiben, werde ich nicht Fehler finden.

Antwort

0

Sie müssen das Attribut serializer_class nicht definieren, da Sie die Methode get_serializer_class bereits überschreiben. Entfernen Sie die Zeile 59.

Von 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.

Verwandte Themen