如何在Django中获取SQL原始查询的值?

时间:2018-08-25 17:06:34

标签: django

我想使用原始sql查询获取特定字段的总和:

total_profit = queryset.raw('SELECT SUM("products_product"."profit") AS Total_Profit FROM "products_product"')

使用total_profit.columns,它返回['total_profit']。虽然,我不知道如何访问它。

如果我尝试total_profit["total_profit"],则会出现以下错误:

InvalidQuery: Raw query must include the primary key

我知道我可以使用Django ORM达到相同的结果:

total_profit = queryset.aggregate(total_profit=Sum("profit"))

1 个答案:

答案 0 :(得分:0)

您需要将其作为对象进行访问。这样的事情。 \l postgres app template0 template1 \c postgres \dt No relations found. \c app \dt No relations found. 。另外,我不确定total_profit.total_profit是否正确,因为我一直以queryset.raw()为例。并始终以这种格式使用它。

引用我已阅读的示例之一。您应该尝试这样的操作。

model_name.objects.raw()

您可以从official django documentation

了解更多信息