gpt4 book ai didi

mysql - django admin 中的 MultipleObjectsReturned 错误 - 但数据库中没有重复项

转载 作者:行者123 更新时间:2023-11-29 13:21:39 25 4
gpt4 key购买 nike

我在 Django 管理中遇到问题。我使用的是1.5.5版本

我有一个 Booth 模型,它有一个指向我的 AreaLayout 模型的外键,然后它会返回到另外几个带有外键和多对多键的模型。我的型号代码可以在pastebin上看到。管理中问题的最初迹象是,AreaLayouts 在 Booth 管理中的选择下拉列表中被重复。当我尝试保存新展位时,会引发 MultipleObjectsReturned 错误 ( 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 中运行该查询时,该查询会在 MySQL 中生成重复项。删除最后 2 个联接会导致返回单个结果(这是所需的结果),而仅删除最后一个联接仍然会导致重复。

我尝试使用 SELECT * 运行该查询,而不是选择特定字段,这种情况下的两个结果几乎相等。不同之处在于,所讨论的 field 有多种 field 类型,我得到了每种 field 的结果。有什么方法可以告诉 django 不要包含这些查询的连接,或者有没有办法可以得到不同的结果,就 AreaLayouts 而言?

最佳答案

我认为您被ticket 11707中报告的错误所困扰。 。其中一条评论提到它可能会导致 MultipleObjectsReturned 异常。

我只能建议您停止使用limit_choices_to。您的模型相当复杂,因此我无法立即看出哪个模型导致了问题。

关于mysql - django admin 中的 MultipleObjectsReturned 错误 - 但数据库中没有重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20747797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com