You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GenericAPIView报错排查:需包含serializer_class或重写get_serializer_class()方法

排查GenericAPIView的serializer_class报错问题

你遇到的这个报错提示指向性很强:GenericAPIView必须包含serializer_class属性,或者重写get_serializer_class()方法。咱们先看看你贴出的代码:

class GenericAPIView(generics.GenericAPIView,mixins.ListModelMixin):
    queryset=Article.objects.all()
    serilizer_class=ArticleSerializer
    def get(self,request):
        return self.list(request)

问题根源

我一眼就发现了问题——你把serializer_class拼写成了serilizer_class,少了一个字母a!Django REST Framework的GenericAPIView只会识别正确拼写的serializer_class属性,所以它找不到这个关键属性,才抛出了报错。

解决方法

只需要修正拼写错误就行,修改后的代码如下:

class GenericAPIView(generics.GenericAPIView,mixins.ListModelMixin):
    queryset=Article.objects.all()
    # 修正拼写:serilizer_class → serializer_class
    serializer_class=ArticleSerializer
    def get(self,request):
        return self.list(request)

额外小提示

如果之后你需要根据不同场景动态指定序列化器,可以选择重写get_serializer_class()方法,比如:

def get_serializer_class(self):
    # 根据用户身份返回不同的序列化器
    if self.request.user.is_staff:
        return AdminArticleSerializer
    return ArticleSerializer

内容的提问来源于stack exchange,提问作者neha bharti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 20:28:12