小编kai*_*ser的帖子

使 PermissionRequiredMixin 还检查对象级别权限

我曾经Django Guardian拥有对象级权限和全局权限。有些用户拥有具有全局权限的组,有些则具有对象级权限。这样,我似乎需要修改PermissionRequiredMixin以检查对象级权限。

views.py

class MainPageView(PermissionRequiredMixin, TemplateView):
    permission_required = "app.view_mainpage"
    template_name = "web/mainpage.html"
Run Code Online (Sandbox Code Playgroud)

如果用户具有全局权限,则此方法有效,但如果用户位于具有对象级权限的组下,则无效。使用监护人,要检查对象级权限,还必须传递对象实例。

例子:

self.request.user.has_perm('view_mainpage', obj)
Run Code Online (Sandbox Code Playgroud)

然后PermissionRequiredMixin,检查就这样进行,self.request.user.has_perms(perms)

那么,如果用户有一个具有view_mainpage特定对象权限的组,我该如何检查它呢?顺便说一句,我的所有权限都是一样的content_type。我有什么办法可以执行这个吗?PermissionRequiredMixin就像如果用户位于对象级组下以及None用户位于全局组下时我必须将对象实例传递给一样。

django django-permissions django-guardian

4
推荐指数
1
解决办法
992
查看次数

如何防止来自 Vue Js 组件中的事件侦听器的多次调用?

我正在像这样在事件侦听器上调用特定函数。

mounted() {
    window.addEventListener("message", this.call);   },

methods: {
    call(e){
       if (e.data === "test"){
          this.call2()
       }
    }
    call2(){
       console.log("called call2")
    }
}
Run Code Online (Sandbox Code Playgroud)

在第一次尝试时,call2被调用一次。但是在第二次尝试时,会call2被调用两次,并且会在控制台上显示两次“被调用的 call2”。等等。对于每次尝试,它只会增加call2单个操作中调用的次数。有什么办法可以防止这种情况吗?

javascript vue.js

1
推荐指数
1
解决办法
98
查看次数