Django从相关模型中选择

时间:2016-10-07 12:33:46

标签: sql django django-models

我有3个django型号:

class Property(object):
   name = ...
class Object(object):
    text = ...
    data_related = models.ManyToManyField('Property',related_name='property_related', through="ObjectProperty")

class ObjectProperty(object):
    extra_data = ...

我需要选择同时具有至少2个属性的对象。 我该怎么办?

例如,Object = [lamp,table,car,pen,...] 财产= [圆形,红色,白色,隐形,柔软,......] 我想找到白色的圆形和柔软的物体。

我想在1个查询集中执行此操作

1 个答案:

答案 0 :(得分:0)

请尝试使用此:

from django.db.models.aggregates import Count

_objects = Object.objects.filter(
    data_related__name__in=['round', 'soft']).annotate(
    count_objects=Count('id')).filter(count_objects__gt=1)