举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > Django4.0 管理器-管理器调用自定义QuerySet方法

Django4.0 管理器-管理器调用自定义QuerySet方法

2023-06-05 20:18 Django4中文教程

 Django4.0 管理器-管理器调用自定义QuerySet方法

因为大部分的标准 ​QuerySet ​方法能直接从 ​Manager ​访问,这个实例仅适用于你在自定义 ​QuerySet ​中定义了额外方法,且在 ​Manager ​中实现了它们:

class PersonQuerySet(models.QuerySet):
    def authors(self):
        return self.filter(role="A")

    def editors(self):
        return self.filter(role="E")

class PersonManager(models.Manager):
    def get_queryset(self):
        return PersonQuerySet(self.model, using=self._db)

    def authors(self):
        return self.get_queryset().authors()

    def editors(self):
        return self.get_queryset().editors()

class Person(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    role = models.CharField(max_length=1, choices=[("A", _("Author")), ("E", _("Editor"))])
    people = PersonManager()

本例允许你从管理器 ​Person.people​ 直接调用 ​authors()​ 和 ​editors()​。


阅读全文
以上是编程学为你收集整理的 Django4.0 管理器-管理器调用自定义QuerySet方法全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部