【问题标题】:Django select from related modelDjango 从相关模型中选择
【发布时间】:2016-10-07 12:33:46
【问题描述】:

我有 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 个属性的对象。 我该怎么做?

例如,对象 = [灯、桌子、汽车、笔……] 属性= [圆形,红色,白色,隐形,柔软,...] 我想找一个白色的圆形柔软的物体。

我想在 1 个查询集中完成

【问题讨论】:

    标签: sql django django-models


    【解决方案1】:

    请尝试使用这个:

    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)
    

    【讨论】:

    • 您的查询意味着该对象具有软或白色属性,但我希望它同时具有它们
    猜你喜欢
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    相关资源
    最近更新 更多