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

其他格式: JSON · Markdown 中文 · English
80%修复率
88%置信度
0证据数
2024-01-22首次发现

版本兼容性

版本状态引入弃用备注
3.x active

根因分析

ORM查询中get()方法要求唯一结果,但查询条件匹配了多条记录

English

使用get()查询时条件不唯一,匹配到多条记录

generic

解决方案

  1. 95% 成功率
    article = Article.objects.filter(title='x').first()
  2. 80% 成功率
    添加unique=True约束或使用get_object_or_404

无效尝试

常见但无效的做法:

  1. 90% 失败

    order_by只影响排序,不影响返回数量,get()仍会抛出异常

  2. 60% 失败

    异常被吞掉后程序继续运行,可能导致数据不一致