“ CityListViewSet”应包含“ serializer_class”属性,或覆盖“ get_serializer_class()”方法

2 python assertion django-rest-framework django-rest-viewsets

我假设标题中有错误,为清楚起见,这里再次

'CityListViewSet' should either include a `serializer_class` attribute, 
or override the `get_serializer_class()` method.
Run Code Online (Sandbox Code Playgroud)

我的序列化程序未连接到我的视图,在我的代码中应该如此。我不太确定这个错误在哪里。我想知道你们是否看到过类似的东西?

这是代码。

路由器:

router.register(r'city-list', CityListViewSet, base_name='city-list')
Run Code Online (Sandbox Code Playgroud)

视图:

class CityListViewSet(viewsets.ReadOnlyModelViewSet):                 
    queryset = Venue.objects.values('city').distinct()
    serializer = CitySerializer(queryset, many=True)
    ordering_fields = ('city',)
    ordering = ('city',)
Run Code Online (Sandbox Code Playgroud)

序列化器:

class CitySerializer(serializers.ModelSerializer):    
    class Meta:
        model = City
        fields =('city',)
Run Code Online (Sandbox Code Playgroud)

用似乎正确连接的代码会导致这种断言错误的原因是什么?

Cor*_*den 5

异常本身说明了这一点。您需要一个serializer_class属性。你有serializer