user_passes_test为匿名用户抛出错误

时间:2015-04-14 09:46:50

标签: django python-decorators

我正在使用以下mixin来检查用户是否属于某种类型:

class UserTypeXOnlyMixin(object):

    @classmethod
    def as_view(cls, **initkwargs):
        view = super(UserTypeXOnlyMixin, cls).as_view(**initkwargs)
        decorator = user_passes_test(lambda u: not u.is_anonymous() and u.type == u.TYPE_X)
        return decorator(view)

问题在于,即使我首先检查not u.isanonymous()的lambda函数,当注销用户访问我使用此mixin的视图时,此函数仍会抛出错误:{{1} }。我该如何避免这个问题?

0 个答案:

没有答案