我在这里写过装饰器是代码。
def is_envlocked(func):
def is_lockedwrapper(self):
username = "tejesh.s"
env_id = self.object.env_id
env = Capacity.models.Env.objects.get(id=env_id)
if env.user == username:
return True
else:
return reverse('envapps', kwargs={'envid':self.object.env.id})
return is_lockedwrapper
class EnvappsCreate(CreateView):
model = Capacity.models.Envapps
fields=['appname','VM_Image','functional_count','flavor']
template_name = 'envapps_create_form.html'
@method_decorator(login_required)
def dispatch(self, request,envid):
return super(EnvappsCreate, self).dispatch(request)
但是想把这个装饰器添加到调度方法我该怎么做?
答案 0 :(得分:1)
这包括in the docs。您可以执行以下操作之一:
decorators = [login_required, is_envlocked]
@method_decorator(decorators)
def dispatch(self, request, envid):
或多次使用method_decorator()
:
@method_decorator(login_required)
@method_decorator(is_envlocked)
def dispatch(self, request, envid):