我假设标题中的错误,为了清晰起见再次在这里
'CityListViewSet' should either include a `serializer_class` attribute,
or override the `get_serializer_class()` method.
我的序列化程序没有连接到我的视图,在我的代码中它应该是。我不确定这个漏洞在哪里。我想知道你们有没有见过类似的东西?
这是代码。
路由器:
router.register(r'city-list', CityListViewSet, base_name='city-list')
观点:
class CityListViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Venue.objects.values('city').distinct()
serializer = CitySerializer(queryset, many=True)
ordering_fields = ('city',)
ordering = ('city',)
序列化器:
class CitySerializer(serializers.ModelSerializer):
class Meta:
model = City
fields =('city',)
什么是导致这样的断言错误,代码似乎正确接线?
答案 0 :(得分:2)
例外说它本身。您需要serializer_class
属性。你有serializer
。
答案 1 :(得分:1)
如果在视图中声明了post方法并尝试发送不进行序列化的post数据,则出现此错误,如果您是从javascript进行请求,则使用JSON.stringify()
答案 2 :(得分:0)
您在这里使用了其他型号名称:
视图:
class CityListViewSet(viewsets.ReadOnlyModelViewSet): #(viewsets.ModelViewSet)
queryset = City.objects.values('city').distinct()
serializer = CitySerializer(queryset, many=True)
ordering_fields = ('city',)
ordering = ('city',)
import->从.serializers导入TaskSerializers,CitySerializer
序列化器:
class CitySerializer(serializers.ModelSerializer):
class Meta:
model = City
fields =('city',)
答案 3 :(得分:0)
serializer = CitySerializer(queryset, many=True)
以上行应替换为
serializer_class = CitySerializer(queryset,many = True)
答案 4 :(得分:0)
您必须覆盖刚刚添加的用户
from django.contrib.auth.models import User
from rest_framework.permissions import IsAdminUser
并在 createViewList 中
permission_classes = [IsAdminUser]
答案 5 :(得分:0)
错误说你定义了一个序列化器属性,你需要用写作来纠正 代码中的 serializer_class 属性,
serializer_class = yourCreatedSerializer