django - 覆盖查询集的更新方法 - Django

标签 django django-models django-managers

我们如何更改 Django 中查询集的默认更新方法过程,因为它不会为每个对象调用 save 方法。由于我已经覆盖了 save 方法,因此每次更改对象时都需要调用它。
我找了 django doc但这仅适用于 get_query_set ,更新方法是否也有类似的东西。

谢谢

最佳答案

这对我有用

class MyQuerySet(models.query.QuerySet):
    def update(self, *args, **kwargs):
        # here queryset update method overridden
        pass

class NewManager(models.Manager):
    def get_queryset(self):
        # this is to use your custom queryset methods
        return MyQuerySet(self.model, using=self._db)

class MyModel(models.Model):
    objects = NewManager()
    myfield = models.SomeTypeOfField(**kwargs)

关于django - 覆盖查询集的更新方法 - Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12818495/

相关文章:

python - 如何覆盖 models.py 中的 __str__ ?

Django models.Manager 无法访问模型

django - 如何在 Django 数据迁移上下文中访问模型的自定义管理器?

python - 从 python 控制台应用程序到 django 作为 UI 最佳实践

django - pip/virtualenv/django 安装问题

python - django 站点地图不存在于/sitemap.xml

python - get_object_or_404 上的循环在条件失败后停止

python - 检索人员的最新对象

django - 根据 Django 中另一个相关模型的 M2M 关系过滤相关字段

django - 在已过滤的查询集上使用 Django 自定义管理器功能