【发布时间】:2014-10-17 15:37:15
【问题描述】:
这是我在 Django 中的 raw 查询
q = Book.objects.raw('''
SELECT * FROM
( SELECT "book"."name", "author"."name",
RANK() OVER (PARTITION BY "author"."id") AS "rank"
FROM "book"
INNER JOIN "book" ON ("book"."author_id" = "author"."id")
) AS "book_table"
WHERE "rank" < %s ''', 10)
在上面的查询集中,name 字段是不明确的。我将此对象传递给另一个需要使用点符号的库,即q[0].name 应指书名,q[0].author.name 应指作者姓名。是否可以在原始查询中使用点表示法(最后的手段是使用"author"."name" AS "author_name",但这会引入冗余代码,因为这些函数也接受来自 Django 托管查询的输入,支持点表示法)。
【问题讨论】:
标签: python django django-queryset