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})
我希望允许用户添加“env”的权限只有在他拥有相应的许可权限时才能做到。
我已经阅读了许多消息和博客,发现实现该功能的方法如上所述。
但是,在调用get_success_url之前我想使用dispatch()方法(不确定是否存在问题),而在这些消息和博客中它们都是在调用dispatch()方法后使用的。
当我尝试由拥有许可权限的用户创建“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
有什么想法,我在做错了什么或者有什么解决方法吗?