如何使用针对模型属性的注释来过滤Django ORM查询?

时间:2017-03-16 12:09:30

标签: django-orm

我有一个Model,其属性包含Int容量,以及用于管理利用率的FK关系,如下所示:

class Container(Model):
    objects = ContainerManager()

    capacity = PositiveSmallIntegerField(default=1)



class Item(Model):
    container = ForeignKey('Container', related_name='items'

Manager需要查找具有备用容量的容器,即与Container关联的Items数。我正在使用注释来计算项目,但无法弄清楚如何将其与容量进行比较,即类似这样的事情。

get_queryset().annotate(utilisation=Count('items').filter(capacity__gt=utilisation)

这可以在一个查询中使用吗?

1 个答案:

答案 0 :(得分:0)

所以,我回答了我自己的问题,以防它帮助其他人......解决方案是使用F()表达式。

get_queryset().annotate(utilisation=Count('items').filter(capacity__gt=F(utilisation))