Django根据其他模型从模型中选择数据

时间:2018-02-07 09:23:16

标签: python django model

我有django数据库,其中模型X的属性为ManyToManyField(Y)。现在我需要选择所有Y中与所选X无关的所有数据。如何使用数据库而不是算法来实现?我已经习惯了周期,但我想使用更有效和更先进的方法。

感谢。

/解决

对于从Y到X没有关系的情况,我发现最有效的方法是使用像

这样的命令
X.objects.exclude((parameter_of_Y)__in=[element.parameter_of_Y for element in elements])

1 个答案:

答案 0 :(得分:0)

您可以将exclude与以下查询一起使用:

x = X.objects.get(...)
non_x_ys = Y.objects.exclude(y_m2n_field=x)

您可以为此类查询提供实例或其pk。请参阅the docs on m2m relations