擅长:python、mysql、java
<p>您应该创建一个自定义管理器并修改初始的<code>QuerySet</code>。签出<a href="https://docs.djangoproject.com/en/2.1/topics/db/managers/#modifying-a-manager-s-initial-queryset" rel="nofollow noreferrer">the docs</a>。在</p>
<blockquote>
<pre><code># First, define the Manager subclass.
class DahlBookManager(models.Manager):
def get_queryset(self):
return super().get_queryset().filter(author='Roald Dahl')
# Then hook it into the Book model explicitly.
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
objects = models.Manager() # The default manager.
dahl_objects = DahlBookManager() # The Dahl-specific manager.
</code></pre>
</blockquote>
<p>然后应该使用自定义管理器(<code>dahl_objects</code>)而不是<code>objects</code>,所有查询都将被修改。在</p>
<p>或者可以重写<code>objects</code>管理器本身</p>
<pre><code>class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
objects = DahlBookManager() # The Dahl-specific manager
</code></pre>