gpt4 book ai didi

python - 如何将自定义模型管理器设置为 Django 中的默认模型管理器?

转载 作者:行者123 更新时间:2023-12-02 02:19:35 26 4
gpt4 key购买 nike

我在 Django 项目中有多个应用程序和模型。现在我想在所有应用程序模型中使用自定义模型管理器。我不想在每个模型中编写自定义模型管理器查询。我只是想知道是否可以将自定义模型管理器设置为所有应用程序的默认模型管理器?

ma​​nager.py

class CustomQuerySet(models.Manager):
def get_queryset(self):
return super(CustomQuerySet, self).get_queryset().filter(status=True)

最佳答案

您可以创建这样的自定义管理器并覆盖 get_queryset 方法,或者您可以添加自己的方法和过滤器。

class PublishedManager(models.Manager):
def get_queryset(self):
return super().get_queryset().filter(status='published')

class Post(models.Model):
# ...
objects = models.Manager() # The default manager.
published = PublishedManager() # custom manager.

这个自定义(PublishedManager)管理器将允许您使用Post.published.all()检索帖子。这将使所有帖子的状态为已发布。

这允许您拥有两个管理器objects,即默认管理器和published(自定义管理器),或者您可以像这样覆盖默认管理器objects = PublishedManager ()

关于python - 如何将自定义模型管理器设置为 Django 中的默认模型管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66625069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com