学习 flask 遇到问题: flask 运行抛出问题, AttributeError: 'AnonymousUserMixin' object has no attribute 'can'

2018-11-18 20:24:23 +08:00
 sprinkle
视图函数部分代码(如果删去 current_user.can(Permission.WRITE_ARTICLES) and 部分能运行)
@main.route('/', methods=['GET', 'POST'])
def index():
form = PostForm()
if current_user.can(Permission.WRITE_ARTICLES) and form.validate_on_submit():
post = Post(body=form.body.data,
author=current_user._get_current_object())
db.session.add(post)
db.session.commit()
return redirect(url_for('.index'))
page = request.args.get('page', 1, type=int)
model 部分代码:

class AnonymousUser(AnonymousUserMixin):
def can(self, permissions):
return False
def is_administrator(self):
return False

login_manager.anonymous_user = AnonymousUser
2298 次点击
所在节点    Python
2 条回复
nccer
2018-11-19 02:54:25 +08:00
我不懂 flask,但看你的报错我猜 current_user 是 AnonymousUserMixin 的实例,而不是 AnonymousUser,但是 current_user 在哪里声明的你又没有贴出来,迷真的很迷。。。。
sprinkle
2018-11-20 19:46:16 +08:00
@nccer current_user 是从 flask_login 模块导入的,搞不懂我添加了 AnonymousUser 类,继承了 AnonymousUserMixin,添加了 can 方法,current_user 应该是 AnonymousUser 的实例,搞不懂。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/509021

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX