【发布时间】:2016-12-29 23:09:12
【问题描述】:
我想将视图中的上下文变量传递到我的模板中,以指示模板应显示的内容。
我有一个上下文列表变量column_headers,它指示列表页表中的列数,以及应该使用的标题文本。
context['column_list'] = [
_('Animal'),
_('Owner'),
_('Reason'),
_('Time'),
_('Vet'),
_('Status')
]
我想包含一个相关的列表变量,它告诉模板为相应列中的每个单元格包含哪个变量,例如:
context['cell_vars'] = [
'patient',
'client',
'reason',
'start_time',
'attending_staff',
'status'
]
这样变量FOO.client 将出现在'Owner' 列中,FOO.attending_staff 将出现在'Vet' 列中,等等。
这样做可以让我有一个 list.html 页面来处理我的所有列表。
所以,我的问题是这是否是一个好主意,如果是,我将如何评估作为上下文变量呈现的“字符串”,即
{% for row in rows %} #loop over list data
{{ row.attending_staff }} #work fine, but...
{{ row.SOME_VARIABLE_THAT_HAS_VALUE_OF_'attending_staff' }} #doesn't
{% endfor %}
所以,如果 x='attending_staff' 我需要能够评估变量 row.x 以便它实际评估 row.attending_staff
这个用例非常明确,只涉及显示逻辑(不是数据检索,因为数据已经在循环变量row 中),因此 IMO 可能非常适合模板。
它将允许我拥有一个“list.hml”模板来处理我几乎所有的列表,而不是我目前拥有的 10 个 foo_list.html 页面,所有页面都非常相似(表结构、循环逻辑、图标、链接、css 类名等)。
【问题讨论】:
标签: python django django-templates django-views