我在Django管理中遇到問題。我使用的版本是1.5.5django admin中的MultipleObjectsReturned錯誤 - 但數據庫沒有重複
我有一個Booth模型,它有一個外鍵給我的AreaLayout模型,然後再回到另外幾個帶有外鍵和many2many鍵的模型。我的型號代碼可在pastebin上查看。 admin中問題的最初表示是AreaLayouts正在Booth admin中的選擇下拉列表中複製。當我嘗試保存新展臺時,MultipleObject退回錯誤(traceback)正在引發。我能跟蹤這回該Django是創建搶AreaLayout列表中的SQL查詢:
SELECT `venue_arealayout`.`id`, `venue_arealayout`.`name`, `venue_arealayout`.`description`, `venue_arealayout`.`area_id`, `venue_arealayout`.`additional_notes`
FROM `venue_arealayout`
INNER JOIN `venue_area` ON (`venue_arealayout`.`area_id` = `venue_area`.`id`)
INNER JOIN `venue_venue` ON (`venue_area`.`venue_id` = `venue_venue`.`id`)
INNER JOIN `venue_venue_venue_type` ON (`venue_venue`.`id` = `venue_venue_venue_type`.`venue_id`)
INNER JOIN `venue_venuetype` ON (`venue_venue_venue_type`.`venuetype_id` = `venue_venuetype`.`id`)
WHERE (`venue_arealayout`.`id` = 66)
,該查詢產生重複在MySQL當我運行它。刪除最後2個JOIN會導致返回單個結果(這是所需的結果),而僅刪除最後一個連接仍會導致重複。
我試圖到位選擇特定字段和兩個結果在這種情況下運行該查詢與SELECT *
是幾乎相等。不同的是,有問題的場地有多個venuetypes,我得到了每個人的結果。有沒有什麼辦法可以告訴django不要爲這些查詢包含這些連接,或者有什麼方法可以讓AreaLayouts得到明顯的結果?
謝謝Alasdair,我認爲你是對的。看起來我需要提出一個解決方法。 – hellsgate