kra*_*r65 5 python attributeerror flask peewee flask-peewee
我正在尝试通过遵循Flask Mega教程来学习Peewee ORM与Flask的结合.在本教程的第5部分中,我使用OpenID创建了一个登录.在克服了一堆障碍之后,我现在在下面的行中粘贴的函数中得到一个AttributeError : login_user(user, remember = remember_me).
@oid.after_login
def after_login(resp):
if resp.email is None or resp.email == "":
flash('Invalid login. Please try again.')
return redirect(url_for('login'))
user = User.select().where(User.email == resp.email)
if user.wrapped_count() == 0:
nickname = resp.nickname
if nickname is None or nickname == "":
nickname = resp.email.split('@')[0]
user = User(nickname = nickname, email = resp.email, role = models.ROLE_USER)
user.save()
remember_me = False
if 'remember_me' in session:
remember_me = session['remember_me']
session.pop('remember_me', None)
login_user(user, remember = remember_me)
return redirect(request.args.get('next') or url_for('index'))
Run Code Online (Sandbox Code Playgroud)
is_active 在我的用户模型中找到如下:
class User(db.Model):
nickname = TextField()
email = TextField()
role = IntegerField(default = ROLE_USER)
def is_authenticated(self):
return True
def is_active(self):
return True
def is_anonymous(self):
return False
def get_id(self):
return self.id
def __repr__(self):
return '<User %r>' % (self.nickname)
Run Code Online (Sandbox Code Playgroud)
我不知道我在这里做错了什么.有人能帮助我解决我在这里做错的事吗?
欢迎所有提示!
dir*_*irn 11
正如错误所示,user = User.select().where(User.email == resp.email)给你回一个SelectQuery,而不是一个实例User.你想要包含一个额外的方法调用来实际获取记录,例如.first().first将返回的实例User或None.
这将允许您稍微调整您的代码:
user = User.select().where(User.email == resp.email).first()
if not user: # or if user is None:
nickname = resp.nickname
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3308 次 |
| 最近记录: |