小编Ash*_*thi的帖子

用于get_success_url的CreateView中的Django permission_required装饰器method_decorator(self)

    from django.contrib.auth.decorators import permission_required  
    from django.utils.decorators import method_decorator  
    class EnvCreate(CreateView):

           model = Capacity.models.Env
           fields = ["name","dns","manager"]
           template_name_suffix = '_create_form'

           @method_decorator(permission_required('Capacity.add_env'))
           def get_success_url(self):
                  return reverse("envapps", kwargs={"envid": self.object.pk})
Run Code Online (Sandbox Code Playgroud)

我想让用户只有在拥有权限的情况下才能添加'env'.
我已阅读了许多消息和博客,并且执行相同的方法如上所述.
但是到处都在使用dispatch(),但是我想在get_success_url之前使用它(不确定这是不是问题)

当我尝试创建env(由拥有权限的用户创建)时,我得到的错误,

    TypeError at /Capacity/create/
    _wrapped_view() takes at least 1 argument (0 given)
    Request Method: POST
    Request URL:    http://172.16.68.20:7000/Capacity/create/
    Django Version: 1.6.1
    Exception Type: TypeError
    Exception Value: _wrapped_view() takes at least 1 argument (0 given)
    Exception Location: /usr/lib/python2.6/site-packages/django/utils/decorators.py in _wrapper, line 29
Run Code Online (Sandbox Code Playgroud)

关于我做错了什么或者解决方案是什么的任何想法?

django django-models django-views

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

标签 统计

django ×1

django-models ×1

django-views ×1