Django的select_related - 过滤引用的引用

时间:2015-09-21 17:44:37

标签: python django

我正在尝试使用Django的select_related进行查询,该查询将遍历两个单独的模型。

条件看起来像这样(注意,值是重命名 - 它不是与值有关的语法事物):

<input type="file" id="fileToLoad" onblur="loadFileAsText()">

数据模型如下所示:

if valueResults.objects.select_related("value_id__item_id").filter(status_code="yes", item_id=item_id).exists():
    return JSONResponse({'message':'Yes', 'status':status.HTTP_200_OK})
elif valueResults.objects.select_related("value_id__item_id").filter(status_code="no", item_id=item_id).exists():
    return JSONResponse({'message':'No’, 'status':status.HTTP_200_OK})
else:
    return JSONResponse({'message':'There are no items matching that item_id', 'status': status.HTTP_404_NOT_FOUND})

我的理想目标是根据valueResults模型的status_code和Items的item_id进行过滤。这可能吗?

1 个答案:

答案 0 :(得分:0)

select_related是一个性能调优工具,而不是与存在测试有关的工具。它不会改变可能的查询类型。可以使用__表示法过滤外键关系 - 有关示例,请参阅docs。 EG,从valueResults模型到valueItems的链接:

 if valueResults.objects.filter(value_id__item_id__status="yes", value_id__item_id__item_id=item_id).exists():
     # do something