我有两个模型 - Task
模型和Worker
模型。我在Worker
上有一个属性,它计算了本月完成的任务数量。
class Task(models.Model):
# ...
completed_on = models.DateField()
class Worker(models.Model):
# ...
@property
def completed_this_month(self):
year = datetime.date.today().year
month = datetime.date.today().month
return Task.objects.filter(worker=self,
completed_on__year=year,
completed_on__month=month).count()
我已将此字段添加到工作人员管理员,并且显示正确。
我希望能够按此字段排序。有没有办法做到这一点?
修改:有人建议我的问题与使用extra()
的{{3}}重复。 Django文档this question,甚至要求您提交说明您必须使用它的原因的票证。
将此方法用作最后的手段
这是一个旧的API,我们打算在将来的某个时候弃用。仅当您无法使用其他查询集方法表达查询时才使用它。如果您确实需要使用它,请使用您的用例使用QuerySet.extra关键字提交票证(请先检查现有票证列表),以便我们可以增强QuerySet API以允许删除extra()。