繁体   English   中英

Django:列表索引超出范围

[英]Django: list index out of range

我有以下MultilingualQuerySetsuper_guest = self.request.event.surveys.get_super_guests()

为此,我过滤了一个作为上下文变量返回的变量。 (有几个不同的上下文变量。)

context["reason_for_attending"] = list(filter(
    lambda question: question.focus == QuestionFocus.REASON_FOR_ATTENDING,
    super_guest
))[0]

现在,只要数据库中有一个条目,这一切都很好。 但是,也有可能还没有“回应”。 然后我得到一个list index out of range错误。 原因是[0] 你有解决方案吗?

发生这种情况的原因是因为super_guest中没有项目与给定条件匹配(并且super_guest也可能只是空的)。

您可以在此处使用next(..) [python-doc] ,并传递一个默认值,例如:

context['reason_for_attending'] = next(filter(
    lambda question: question.focus == QuestionFocus.REASON_FOR_ATTENDING,
    super_guest
), None)

如果没有元素,则context['reason_for_attending']将为None 然后,您可以在模板中进行一些适当的渲染。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM