flask 匿名用户自定义类 AnonymousUser 无法调用

2018-12-01 09:48:17 +08:00
 sprinkle

model 中自定义了 AnonymousUser 类:

class MyAnonymousUser(AnonymousUserMixin):

def can(self, permissions):

    return False

def is_administrator(self):

    return False

login_manager.anonymous_user = MyAnonymousUser

在视图函数中使用了 can 方法:

@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())

结果运行出现'AnonymousUserMixin' object has no attribute 'can'的错误,请问下问题出在哪里?登录用户能够正常调用角色验证方法。

3040 次点击
所在节点    Flask
2 条回复
BruceYuan
2018-12-01 21:27:10 +08:00
看着代码没有什么问题。可能你没有初始化这个值?(我的意思是你运行这 index 这里的时候,上面那句 `login_manager.anonymous_user = MyAnonymousUser` 没有执行到。你可以看看单步看一下。(或者用 isinstance 看一下是不是自定义的匿名类实例)
sprinkle
2018-12-02 20:16:02 +08:00
@BruceYuan 这是我的源码 https://github.com/violet-zilan/flasky,用了 isinstance 不是

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

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

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

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

© 2021 V2EX