我有一个SerializerMethodField进行了一些繁重的计算。我也使用相同的方法到同一个序列化程序的另一个SerializerMethodField。 如何缓存第一个的结果,所以我只运行一次繁重的计算?
答案 0 :(得分:1)
由于计算在同一个序列化程序的两个方法之间很常见,因此可以使用cached_property装饰器。这将在模型实例上缓存方法的结果,只要实例执行,结果将保持不变。
from django.utils.functional import cached_property
class Person(models.Model):
@cached_property
def friends(self):
...