Django序列化器报错AssertionError:ProductSerializer缺少'Meta.model'属性,但已定义Meta类
Django序列化器报错AssertionError:ProductSerializer缺少'Meta.model'属性,但已定义Meta类
嗨,我一眼就揪出问题所在啦!你这个报错看起来有点迷惑,但其实就是个超小的语法细节失误——你在Meta类里用冒号:来给model和fields赋值了,但Python里给类属性赋值必须用等号=呀!
Django的ModelSerializer会去读取Meta类里的model和fields属性来关联模型和指定字段,但你用冒号的写法不符合Python类属性的赋值语法,导致Django压根识别不到这些配置,所以才会抛出「缺少Meta.model」的错误。
给你修正后的序列化器代码:
class ProductSerializer(serializers.ModelSerializer): class Meta: model = Product # 把原来的冒号改成等号 fields = ['title','image','likes'] # 这里同样要换成等号
另外还要提醒你一下,你的Product模型代码存在缩进问题,Python对缩进要求非常严格,正确的写法应该是这样(每个字段都要缩进一级):
class Product(models.Model): title = models.CharField(max_length=200) image = models.CharField(max_length=200) likes = models.PositiveIntegerField(default=0)
改完这两处,你的序列化器应该就能正常工作啦!
备注:内容来源于stack exchange,提问作者cls
相关产品推荐
相关产品推荐

