我有以下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]
。您有解决方案吗?
答案 0 :(得分:1)
发生这种情况的原因是,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
。然后,您可以在模板中进行适当的渲染。