Flask登录:如何在关系中比较current_user和用户id



我正在编写一个带有SQLAlchemy后端的应用程序,该应用程序具有一个定义如下的字段的模型:

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
class MyObject(db.Model):
user = relationship(User, primaryjoin=user_id==User.id)

用户通过Flask登录进行登录。

在这些观点中,我经历了某种奇怪的行为:

36     import ipdb; ipdb.set_trace()
---> 37     if theobject.user != current_user:
38         abort(403)

这总是以403失败。

ipdb> theobject.user                                                                                                       
<User emes [emes@test.com]>
ipdb> current_user                                                                                                      
<User emes [emes@test.com]>
ipdb> theobject.user == current_user                                                                                       
False

为什么会发生这种情况?实施User.__eq__是正确的方法吗?

你能根据Id进行比较吗?例如

theobject.user.id == current_user.id
# or
theobject.user.email == current_user.email

相关内容

最新更新