首页 > 解决方案 > 使用 TreeQuerySet 进行多对多字段反向查找

问题描述

我没有解决我的问题,我尝试了多个教程,但无处可去。我看过这些地方(和其他地方) -

这些只是我失败的一些尝试——

    # print(CategoryTree.objects.get(products= "13").first())
    # print(Product.objects.all().filter(id="13"))
    # # print(Product.objects.all().filter(id="13").product)
    # print(Product.objects.all().filter(id="13").all().CategoryTree_set.all())
    # print(CategoryTree.objects.filter(title='LasVegas'))

假设在 Product 模型中我有一个标题为 Iron Man Toy 的项目,我需要找到一种方法来找到它在 CategoryTree 模型中所属的类别(或多个类别)。我有一个接近解决我的问题的解决方案,但如果该项目属于两个单独的类别,那么我会收到一条错误消息。

更新

我想找出哪些产品属于 LasVegas 类别。这两行代码将打印 ID 为 15 的类别产品属于 -

 # print(CategoryTree.objects.get(products= 15)) 
 # print(CategoryTree.objects.get(products= "15")) 

但是,如果产品属于两个类别,则会出现问题。所以我回到图纸并尝试进行反向查找,但没有奏效。

这是我的最终解决方案。下一阶段将是让 Python 找出展示产品的 ID,并将该值放在当前 15 的位置。

 try:
        CategoryTree.objects.filter(title="LasVegas").get(products= 15)
       
        self.template_name = "products/detail2.html"
    except:
        pass

标签: pythondjangodjango-viewsdjango-mptt

解决方案


推荐阅读