[英]Django: list index out of range
我有以下MultilingualQuerySet
: super_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.