真的很长的查询

时间:2009-08-12 21:41:22

标签: python django django-models

你如何做长查询?有没有办法优化它? 我会做复杂而长时间的查询:

all_accepted_parts = acceptedFragment.objects.filter(fragmentID = fragment.objects.filter(categories = fragmentCategory.objects.filter(id=1)))

但它不起作用,我得到:

Error binding parameter 0 - probably unsupported type.

我会感谢任何提示我如何优化或解决当然的问题 - 更感谢:)

2 个答案:

答案 0 :(得分:4)

如果它不起作用,则无法对其进行优化。首先让它发挥作用。

乍一看,似乎你真的混淆了关于领域,关系和平等/成员资格的概念。首先考虑文档,然后在python shell上逐个构建查询(可能是从里到外)。

在黑暗中拍摄:

all_accepted_parts = acceptedFragment.objects.filter(fragment__in = fragment.objects.filter(categories = fragmentCategory.objects.get(id=1)))

或者也许:

all_accepted_parts = acceptedFragment.objects.filter(fragment__in = fragment.objects.filter(categories = 1))

答案 1 :(得分:4)

正如其他人所说,我们确实需要这些模型,并对你实际想要达到的目标做出一些解释。

但看起来你想做一个相关的表查找。您应该使用Django的相关模型语法在查询中进行连接,而不是将所有相关对象放在单独的嵌套查询中。

类似的东西:

acceptedFragment.objects.filter(fragment__categories__id = 1)