应该做同样事情的两个django ORM查询正在做不同的事情

时间:2014-04-29 09:13:21

标签: django django-orm

看看下面这两个函数:

def get_recommended_products_IT_WORKS(request):
    carrello = get_basket(request)
    articoli_carrello = Articolo.objects.filter(
        variantearticolo__rigareferenza__referenza__paginavendita_referenza__rigacarrello__carrello=carrello)

    TEMP = Referenza.objects.filter(rigareferenza__variante_articolo__articolo__in=articoli_carrello)
    recommended_products = RecommendedProduct.objects.exclude(paginavendita_referenza__referenza__in=TEMP)

    return recommended_products


def get_recommended_products_IT_DOESNT_WORK(request):
    carrello = get_basket(request)
    articoli_carrello = Articolo.objects.filter(
        variantearticolo__rigareferenza__referenza__paginavendita_referenza__rigacarrello__carrello=carrello)

    recommended_products = RecommendedProduct.objects.exclude(
        paginavendita_referenza__referenza__rigareferenza__variante_articolo__articolo__in=articoli_carrello)

    return recommended_products

对我来说,似乎他们应该返回相同的结果,但它不是这样的。 前者的作用就像我需要的而后者不是。 你能给我一些提示吗?谢谢。

0 个答案:

没有答案