我在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