擅长:python、mysql、java
<p>如果要将<code>all_members</code>这样的计算字段添加为模型的一部分,则必须重写<code>save</code>函数:</p>
<pre><code>class Home(models.Model):
...
all_members = models.IntegerField()
def save(self):
all_members = self.all_people()
super(Home, self).save()
</code></pre>
<p>现在可以按<code>all_members</code>过滤。在这种情况下,最好对<code>all_members</code>使用<code>@property</code>装饰器。你知道吗</p>
<p>另一种方法是使用Django在<a href="https://stackoverflow.com/questions/1652577/django-ordering-queryset-by-a-calculated-field">a different stackoverflow answer</a>中提到的<code>extra</code>方法</p>