我有一个CB DeleteView,我正试着用卫报的permission_required装饰它。权限应为已登录用户和DeleteView对象的权限。卫报的文档对此不太清楚,所以我想知道是否有人可以澄清。
发布于 2012-06-28 00:36:12
我遇到了几乎相同的问题,以下是我的解决方案(适用于您的情况):
views.py
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)请注意,您可以传入accept_global_perms参数,即默认为False。允许具有'myapp.delete_mymodel'权限的用户删除MyModel类的任何对象。例如,这对版主很有用。
发布于 2012-06-07 12:00:17
要装饰基于类的视图的每个实例,您需要装饰类定义本身。为此,您将装饰器应用于class.For示例的dispatch()方法,
class ExampleView(TemplateView):
template_name = 'Example.html'
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(ExampleView, self).dispatch(*args, **kwargs)https://stackoverflow.com/questions/10925127
复制相似问题