通过模型@property对Django admin中的对象进行排序?

时间:2018-03-24 18:03:48

标签: python django

我有两个模型 - 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()。

0 个答案:

没有答案
相关问题