How to pass Django request object in user_passes_test decorator callable function

后端 未结 3 2215
春和景丽
春和景丽 2020-12-30 02:05

I am using Django user_passes_test decorator to check the User Permission.

@user_passes_test(lambda u: has_add_permission(u, \"project\"))
def create_project         


        
3条回答
  •  失恋的感觉
    2020-12-30 02:30

    Note that Django 1.9 introduced UserPassesTestMixin, which uses a method test_func as test function. This means the request is available in self.request. So you can do something like that:

    class MyView(UserPassesTestMixin, View):
        def test_func(self):
            return has_add_permission(self.request.user, self.request)
    

    This only works with class-based views however.

提交回复
热议问题