Django查询。正确使用objects.select_related()

时间:2015-09-03 03:02:07

标签: django django-queryset

我有这个型号:

property = x

所以,我希望得到具有query = B.objects.filter(property=x).select_related('A') 的对象B的ForeignKeys的所有对象A.

我试过了:

select_related()

但它不起作用。是否可以使用 $scope.add = function(){ var f = document.getElementById('file').files[0], r = new FileReader(); r.onloadend = function(e){ var data = e.target.result; //send you binary data via $http or $resource or do anything else with it } r.readAsBinaryString(f); } 执行此操作?

2 个答案:

答案 0 :(得分:2)

您需要撰写.select_related('foreign')select_related采用字段名称,而不是类名。

答案 1 :(得分:2)

虽然我犹豫是否与杰出的亚历克斯相矛盾,而且他在技术上是正确的(毕竟这是最好的正确),select_related不是这里的答案。使用它永远不会给你不同的对象;它只会提高后续访问相关对象的效率。

要获得As,您需要从A开始查询。您可以使用双下划线语法来过滤相关属性。所以:

query = A.objects.filter(b__property=x)