python - 如何更新 django cached_property

标签 python django

我想在模型属性上使用@cached_property 以避免过多的数据库访问。

class AttrGroup(models.Model):
    ...

    @cached_property
    def options(self):
        options = AttributeOption.objects.filter(group_id=self.id)
        return options
    ...

这很好用。

我想使用下面的函数来更新选项的值。但是我应该怎么做呢?对于属性装饰器,它有 setter 。

def _set_options(self, value):
    for option in value:
        AttributeOption.objects.create(group_id=self.id, option=option.get('option'))

最佳答案

您可以通过删除 cached_property 使其无效:

del self.options

参见 here .

关于python - 如何更新 django cached_property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43039188/

相关文章:

python - 模块操作系统和模块子进程之间的区别?

python - 如何在python中使用Selenium或请求提取<img src链接和其他内容?

python - 在 Django 的 View/Template 中引用多个 Model

python - 将占位符动态添加到表单域

python - 如何使用 selenium 和 python 禁用 Firefox 中的文件下载弹出窗口?

python - Django 音频文件表单验证

python - 如何使用自定义数据集运行 Keras Retinanet 对象检测代码示例?

python - 升级 Django 和 NoReverseMatch 密码错误

Django 如何编写 DRY View

Django MongoDB 问题