我曾经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用户位于全局组下时我必须将对象实例传递给一样。
我正在像这样在事件侦听器上调用特定函数。
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单个操作中调用的次数。有什么办法可以防止这种情况吗?