python
data_error
ai_generated
true
多个对象返回异常:get()返回了多个Article对象,共返回2个!
django.core.exceptions.MultipleObjectsReturned: get() returned more than one Article -- it returned 2!
ID: python/django-orm-multiple-objects-returned
80%修复率
88%置信度
0证据数
2024-01-22首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 3.x | active | — | — | — |
根因分析
ORM查询中get()方法要求唯一结果,但查询条件匹配了多条记录
English
使用get()查询时条件不唯一,匹配到多条记录
解决方案
-
95% 成功率
article = Article.objects.filter(title='x').first()
-
80% 成功率
添加unique=True约束或使用get_object_or_404
无效尝试
常见但无效的做法:
-
90% 失败
order_by只影响排序,不影响返回数量,get()仍会抛出异常
-
60% 失败
异常被吞掉后程序继续运行,可能导致数据不一致