因为大部分的标准 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()
。
本教程从教程第 5 部分结束的地方开始。我们已经建立了一个经过测试的网络投票应用程序,现在我们将添加一个样式表和一个图像。...
Java Swing教程 -Java Swing JTextFieldJTextField可以处理一行纯文本。它的构造函数接受以下三个值的组合。A string - specifie...
Java Swing教程 -Java Swing拖放拖放(DnD)是一种在应用程序中传输数据的方法。DnD允许我们通过拖动组件并将其拖放到另一个组件上...
Java Swing教程 -JLabel JLabel 表示标签,即用于不可编辑的文本的显示区域。 JLabel 可以显示文本和图像。它甚至可以渲染HTML标...