Django对象在模板中查找

Ben*_*ndy 0 python django django-templates django-models

我正在浏览Django项目教程,在节中它说:

模板系统使用点查找语法来访问变量属性.在{{question.question_text}}的示例中,首先Django对对象问题进行字典查找.如果失败了,它会尝试进行属性查找 - 在这种情况下可以正常工作.如果属性查找失败,它将尝试列表索引查找.

这是否意味着Django question是一个字典对象,并且在第一个实例中,查找为question_text键,如果找到,则返回值?除此之外,我无法想象两个后备选项正在做什么.

Chr*_*ris 6

这是否意味着Django question是一个字典对象,并且在第一个实例中,查找为question_text键,如果找到,则返回值?除此之外,我无法想象两个后备选项正在做什么.

question不必dict是第一个工作选项的文字.它需要像字典一样.也就是说,question['question_text']适用于Python.

第一个回退是指常规的Python点表示法.例如,如果其中任何一个在Python中有效:

question.question_text  # or
question.question_text()
Run Code Online (Sandbox Code Playgroud)

然后question.question_text将在模板中返回Python值.请注意,在这两种情况下都省略了括号.

最后的回退是数字索引.例如,if question是一个列表,这适用于Python:

question[0]
Run Code Online (Sandbox Code Playgroud)

然后question.0将在模板中工作,返回值question[0].