gpt4 book ai didi

python - 对象没有属性 _state

转载 作者:IT老高 更新时间:2023-10-28 20:53:24 25 4
gpt4 key购买 nike

我正在开发 Django 应用程序,但出现以下错误

'Sheep' object has no attribute _state

我的模型是这样构造的

class Animal(models.Model):
aul = models.ForeignKey(Aul)
weight = models.IntegerField()
quality = models.IntegerField()
age = models.IntegerField()

def __init__(self,aul):
self.aul=aul
self.weight=3
self.quality=10
self.age=0

def __str__(self):
return self.age


class Sheep(Animal):
wool = models.IntegerField()

def __init__(self,aul):
Animal.__init__(self,aul)

我必须做什么?

最佳答案

首先,您必须非常小心地覆盖 __init__ 以获得非可选参数。请记住,每次从查询集中获取对象时都会调用它!

这是您想要的正确代码:

class Animal(models.Model):
#class Meta: #uncomment this for an abstract class
# abstract = True
aul = models.ForeignKey(Aul)
weight = models.IntegerField(default=3)
quality = models.IntegerField(default=10)
age = models.IntegerField(default=0)

def __unicode__(self):
return self.age

class Sheep(Animal):
wool = models.IntegerField()

如果您只使用此对象的子类,我强烈建议您在 Animal 上设置 abstract 选项。这确保了不会为动物创建表,而仅为绵羊(等)创建表。如果未设置 abstract,则将创建一个 Animal 表,并为 Sheep 类提供它自己的表和一个自动的“animal”字段,该字段将是 Animal 模型的外键。

关于python - 对象没有属性 _state,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5290001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com