2011-04-08 35 views

回答

0

我不相信你可以用Django數據庫抽象API做這個選擇性計數,而不包括一些SQL。您使用extra方法增加了QuerySet的SQL。

假設文檔中的示例是名爲「庫存」的應用程序的一部分,並且使用了與postgresql一起工作的語法(您沒有指定,這是我更熟悉的),以下內容應該可以做到「重新詢問:

Book.objects.extra(
    select={"john_count": 
    """SELECT COUNT(*) from "inventory_book_authors" 
    INNER JOIN "inventory_author" ON ("inventory_book_authors"."author_id"="inventory_author"."id") 
    WHERE "inventory_author"."name"=%s 
    AND "inventory_book_authors"."book_id"="inventory_book"."id" 
    """}, 
    select_params=('John',) 
)