Django:IndexError:列表索引超出范围

时间:2019-08-08 06:25:44

标签: python mysql django

获取异常:

IndexError django.db.models.sql.compiler in apply_converters

IndexError: list index out of range in djagno queryset

我正在这样做

object =Info.objects.get(is_active=False,device_id=device_id)

此处device_id是数据库架构中的长文本类型,已被索引

object =Info.objects.get(is_active=False,device_id=device_id)

2 个答案:

答案 0 :(得分:3)

您正在使用get方法来获取对象。

给出查询

object =Info.objects.get(is_active=False,device_id=device_id)

在此情况下,可能不存在 device_id is_active 匹配查询。

您可以使用尝试,获取中的方法除外。

try:
    object =Info.objects.get(is_active=False,device_id=device_id)
except:
    object = None

或者您必须使用 filter 方法

object =Info.objects.filter(is_active=False,device_id=device_id)[0]

OR

object =Info.objects.filter(is_active=False,device_id=device_id).first()
如果查询未获取数据,则

过滤器查询将结果为None。对于不匹配大小写的条件,不会引发错误。

答案 1 :(得分:1)

您可以尝试使用.first(),就像这样:

object = Info.objects.filter(is_active=False, device_id=device_id).first()