Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django表单向导和权限_Django_Django Views_Django Formwizard - Fatal编程技术网

Django表单向导和权限

Django表单向导和权限,django,django-views,django-formwizard,Django,Django Views,Django Formwizard,我想知道是否有一种方法可以使用Django的权限装饰器。我知道有一种方法可以通过urlconf实现,但我希望避免这种情况,并通过视图设置所有权限 我试图覆盖MyFormWizard.as_view()并在那里添加装饰器,但后来意识到这是一种@classonlymethod 我对基于类的视图没有太多经验,我想知道是否有一种简单的方法可以在FormWizard的方法中添加权限装饰器?有什么线索吗?您不必在url配置中装饰视图。您可以在视图.py中装饰视图 protected_wizard_view

我想知道是否有一种方法可以使用Django的权限装饰器。我知道有一种方法可以通过urlconf实现,但我希望避免这种情况,并通过视图设置所有权限

我试图覆盖MyFormWizard.as_view()并在那里添加装饰器,但后来意识到这是一种@classonlymethod


我对基于类的视图没有太多经验,我想知道是否有一种简单的方法可以在FormWizard的方法中添加权限装饰器?有什么线索吗?

您不必在url配置中装饰视图。您可以在
视图.py中装饰视图

protected_wizard_view = login_required(MyWizardView.as_view())
然后在
url.py
中导入
protected\u向导\u视图

(r'^wizard/', protected_wizard_view),
另一个选项是修饰
dispatch
方法,如下所示


@Alasdair的响应很好,还有一个很棒的应用程序,它包含了许多帮助程序和混合程序,您可以使用它们进行基于类的查看,看看吧

运行
pip安装django支架
,您可以使用
LoginRequiredMixin

from braces.views import LoginRequiredMixin

class MyWizardView(LoginRequiredMixin, WizardView):
    pass
还有像
PermissionRequiredMixin
multiplepermissionrequiredmixin
GroupRequiredMixin

谢谢,dispatch()和@method\u decorator正是我想要的!
from braces.views import LoginRequiredMixin

class MyWizardView(LoginRequiredMixin, WizardView):
    pass