擅长:python、mysql、java
<p>引用@Willem Van Olsem的评论:</p>
<blockquote>
<p>You don't. The database does not know anything about properties, etc. So it can not filter on this. You can make use of .annotate(..) to move the logic to the database side.</p>
</blockquote>
<p>您可以执行他共享的消息,也可以将其设置为自动计算的模型字段</p>
<pre><code>class StudentManager(models.Manager):
def passed_students(self):
return self.filter(college_end_date__lt=timezone.now())
class Student(models.Model):
join_date = models.DateTimeField(auto_now_add=True)
college_duration = models.IntegerField(default=4)
college_end_date = models.DateTimeField()
objects = StudentManager()
def save(self, *args, **kwargs):
# Add logic here
if not self.college_end_date:
self.college_end_date = self.join_date + timezone.timedelta(days-self.college_duration)
return super.save(*args, **kwargs)
</code></pre>
<p>现在您可以在数据库中搜索它</p>
<p><strong>注意:</strong>这类事情最好从您知道要筛选的数据开始。如果您有预先存在的数据,则需要重新保存所有现有实例</p>