我有一个模特:
class User(models.Model):
user_id = models.IntegerField(default=0)
user_name = models.CharField(max_length=20)
user_age = models.IntegerField(default=0)
def __init__(self, user_id, user_name, user_age):
self.user_id = user_id
self.user_name = user_name
self.user_age = user_age
然后我尝试创建此模型的实例:
new_user = User(0, 'Andrew', 25)
new_user.save()
但这给了我错误:
'User' object has no attribute '_state'
这是什么意思?
答案 0 :(得分:3)
代码缺少对超类“__init__
:
def __init__(self, user_id, user_name, user_age):
super(User, self).__init__() # <----
self.user_id = user_id
self.user_name = user_name
self.user_age = user_age
答案 1 :(得分:3)
你根本不应该真正定义__init__
方法。 falsetru表明你需要调用超类方法,但是你已经提供了你自己版本中的所有功能。