如何使用django @lazy装饰器?
首先,我尝试使用django.utils.functional.lazy这个装饰器。我的函数返回两个列表,所以我用@lazy(list, list)来装饰它。这个函数很简单,不是在类里的方法或属性。
但是当我尝试调用这个被装饰的函数时,出现了一个错误,提示“‘proxy’对象不可调用”。
1 个回答
5
我觉得你不能把Django的lazy当作装饰器来用。你可以把它当作一个函数调用来使用:
lazy_function = lazy(f, type)
这里的f
是你想要变成懒加载的函数,而type
是你期望的数据类型。
另外,你是怎么返回这两个列表的呢?比如:
def a():
return [], []
如果是这样的话,从技术上讲,你实际上是在返回一个元组,所以你应该这样使用lazy:
lazy_f = lazy(f, tuple)