Python 错误:没有属性'_州';
我有一个模型:Python 错误:没有属性'_州';,python,django,django-models,Python,Django,Django Models,我有一个模型: 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
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'
这意味着什么?代码缺少对超级类的调用“
\uuuu init\uuuu
:
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
def\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
super(User,self)。\uuuuu init\uuuu()代码缺少对super类的调用'\uuuuu init\uuuu
:
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
def\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
super(User,self)。\uuuu init\uuu()您根本不应该定义\uuuu init\uuu
方法。falsetru表明您需要调用超级类方法,但您在自己的版本中提供的所有功能都已由它提供。您不应该真正定义\uuuu init\uu
方法。falsetru表明您需要调用超级类方法,但是您在自己的版本中提供的所有功能都已经由它提供。您可能应该使用Django的auth
框架,它有一个用户
模型和几个您可以使用的抽象基类。这实现了许多功能,其中包括用于保存密码和默认登录/注销/密码重置视图等的加密安全方法。您可能应该使用Django的auth
框架,该框架有一个User
模型和几个可供使用的抽象基类。这实现了许多功能,其中包括用于保存密码和默认登录/注销/密码重置视图等的加密安全方法。谢谢。但是,假设我想为字段设置一些默认值,那么在不定义init的情况下如何实现呢?另外,如果我只使用默认的init,那么我必须显式地传递带有名称的变量,例如new_user=user(user_id=0,user_name='Andrew',user_age=15),而我希望能够像这样发送这些值:new_user=user(0,'Andrew',15)。您已经在字段声明中定义了默认值。谢谢。但是,假设我想为字段设置一些默认值,那么在不定义init的情况下如何实现呢?另外,如果我只使用默认的init,那么我必须显式地传递带有名称的变量,例如new_user=user(user_id=0,user_name='Andrew',user_age=15),而我希望能够像这样发送这些值:new_user=user(0,'Andrew',15)。您已经在字段声明中定义了默认值。