如何获取按匹配属性数排序的查询行?

时间:2017-03-21 09:18:14

标签: mysql sql django django-queryset

我有两个模型/表APropertyAProperty有很多关系。 A有一个字段SomeNameProperty也有一个字段Value

通过我的应用,我收到了Values的列表。现在,我想从发送的列表中检索至少有一个A的{​​{1}}行,但我还想根据列表中存在的Value的数量对这些行进行排序。

例如,M,N和O是模型A的三个对象.M具有属性P1,P2,P3,N具有属性P2,P3,P4和O具有属性P3。我收到一个值列表P2,P4。现在,如果Properties是模型A的字符串表示,那么我想要的结果查询集是<QuerySet [<A: N>, <A: M>]>

首选Django代码,但SQL也足够了。

1 个答案:

答案 0 :(得分:2)

感觉就像你需要的那样。假设A是模型,ValuesProperties中的字段。M2MField是从Many2ManyA的{​​{1}}字段}。

Property