问:以下是我的app.py文件代码:
如果name ==' main ':models.initialize()尝试:models.User.create_user(username ='GabeRivera',email=' gabriel.f.rivera.10@gmail ',password ='turbo13negro',admin = True)除了ValueError:pass app.run(debug = DEBUG,host = HOST,port = PORT)
当我尝试运行它时,我收到以下错误消息:追溯(最近一次调用):<模块>模型中的文件“ app.py”,行120。User.create_user(AttributeError:类型对象“ User”没有属性'create_user'(venv)Gabriels-MBP:Greenshare Gabe $
任何帮助了解我在做什么错,将不胜感激。谢谢你们。
答:您有格式错误。在您的User类中,归于该类的所有事物都需要缩进。您的类方法create_user不在User类下缩进,也不算作该类的一部分。例如
类 用户(UserMixin , 型号):
用户名= CharField (唯一=真)电子邮件= CharField (唯一=真)密码= CharField (MAX_LENGTH = 100 )joined_at = DateTimeField字段(默认=日期时间,日期时间。现在)is_admin = BooleanField (默认值=错误的
)
#此行下的所有内容均不算作User类类Meta的一部分:database = DATABASE order_by = ('-joined_at' ,)def get_posts (self ):return Post 。选择()。其中,(帖子。用户==自我)高清get_stream (个体经营):回邮。选择()。其中,((邮
。用户 == self )
)@classmethod def create_user (cls ,用户名,电子邮件,密码,admin = False ):试试:使用DATABASE 。transaction ():cls 。创建(用户名=用户名,电子邮件=电子邮件,密码= generate_password_hash (密码),is_admin =管理员
),
但IntegrityError除外:引发ValueError (“用户已存在” )
类 用户(UserMixin , 型号):
用户名= CharField (唯一=真)电子邮件= CharField (唯一=真)密码= CharField (MAX_LENGTH = 100 )joined_at = DateTimeField字段(默认=日期时间,日期时间。现在)is_admin = BooleanField (默认值=错误的
)
#此行下的所有内容现在都属于User类类Meta的一部分:database = DATABASE order_by = ('-joined_at' ,)def get_posts (self ):return Post 。选择()。其中,(帖子。用户==自我)高清get_stream (个体经营):回邮。选择()。哪里((发表。
用户 == self )
)@classmethod def create_user (cls ,用户名,电子邮件,密码,admin = False ):试试:使用DATABASE 。transaction ():cls 。创建(用户名=用户名,电子邮件=电子邮件,密码= generate_password_hash (密码),is_admin = admin )
除了 IntegrityError :
提高ValueError (“用户已经存在” )