Bud*_*hot 14 django python-decorators
官方文档解释了如何装饰基于类的视图,但是我找不到有关如何为装饰器提供参数的任何信息.
我想实现类似的东西
class MyView(View):
@method_decorator(mydecorator, some_parameters)
def dispatch(self, *args, **kwargs):
return super(MyView, self).dispatch(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
这相当于
@mydecorator(some_parameters)
def my_view(request):
....
Run Code Online (Sandbox Code Playgroud)
我该如何处理这类案件?
Lui*_*lli 20
@method_decorator将函数作为参数.如果要传递带参数的装饰器,您只需:
@method_decorator.在显式Python代码中,这将是:
decorator = mydecorator(arg1, arg2, arg...)
method_dec = method_decorator(decorator)
class MyClass(View):
@method_dec
def my_view(request):
...
Run Code Online (Sandbox Code Playgroud)
所以,完全使用语法糖:
class MyClass(View):
@method_decorator(mydecorator(arg1, arg2, arg...))
def my_view(request):
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3088 次 |
| 最近记录: |