我有一个CB DeleteView,我想使用Guardian的permission_required进行修饰。权限应该是针对已登录用户和DeleteView对象的。Guardian文档对此并不太清楚,因此我想知道是否有人能够澄清。
我有一个CB DeleteView,我想使用Guardian的permission_required进行修饰。权限应该是针对已登录用户和DeleteView对象的。Guardian文档对此并不太清楚,因此我想知道是否有人能够澄清。
我遇到了几乎相同的问题,以下是我的解决方案(适用于你的情况):
class MyModelDeleteView(DeleteView):
model=MyModel
@method_decorator(permission_required_or_403('myapp.delete_mymodel',
(MyModel, 'slug', 'slug'), accept_global_perms=True))
def dispatch(self, *args, **kwargs):
return super(MyModelDeleteView, self).dispatch(*args, **kwargs)
要装饰类视图的每个实例,您需要装饰类定义本身。为此,您将装饰器应用于类的dispatch()方法。例如,
class ExampleView(TemplateView):
template_name = 'Example.html'
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(ExampleView, self).dispatch(*args, **kwargs)