我在找医疗用品
我有10个区域,每个地方有10张桌子,每个桌子都有医疗药房,还有10张桌子,每张桌子上都有这些药房提供的医疗用品。
现在我在所有这些配药中寻找一个医疗物品。
对于每一个区域,我都会得到一些物体
a_list = Washington_dispensaries.objects.all()
然后我在搜索每个药房里是否有这个特定的物品。
if category:
a_lists = []
for dispensary in a_list:
items = dispensary.washington_dispensaries_item_set.filter(item__product_type__name = category)
if items:
result_cat_items.append(items)
a_lists.append(dispensary)
a_list = a_lists
完成所有10个区域的此查询需要15秒。
如果我用PHP编写代码,我将使用MySQL联接来加快查询速度。现在我如何更快地查询。
发布于 2014-12-30 10:07:05
您已经做了两个联接,到item和product_type。所以,再做一次:不要把药房分开,而是把它作为过滤器的一部分。在没有看到模型的情况下,很难给出精确的语法,但如下所示:
DispensaryItem.objects.filter(dispensary__location='Washington', item__product_type__name=category)
https://stackoverflow.com/questions/27702532
复制相似问题