【发布时间】:2011-09-28 23:58:53
【问题描述】:
我写了一个装饰器来显示创建对象的成功消息:
from django.contrib import messages
def success_message(klass):
def form_valid(self, form):
response = super(klass, self).form_valid(form)
messages.success(self.request, 'Object added successfully')
return response
klass.form_valid = form_valid
return klass
并用它来装饰基于类的通用视图:
@success_message
class BandCreateView(CreateView):
model = Band
现在我想参数化装饰器,这样就可以了:
@success_message('Band created successfully.')
class BandCreateView(CreateView):
model = Band
我该怎么做?我尝试将message 参数添加到success_message 但编译器抱怨参数计数不匹配,所以我认为必须有另一种方法。
【问题讨论】:
标签: python django decorator django-1.3 django-class-based-views