[英]How can i compare a context variable with a SQL ID in a Django template?
[英]How can I evaluate a View context variable as a Template variable in Django?
我想將上下文變量從視圖傳遞到模板中,以指示模板應顯示的內容。
我有一個上下文列表變量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'
列中, FOO.attending_staff
。
這樣做可以讓我有一個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 x foo_list.html頁面,它們彼此非常相似(表結構,循環邏輯,圖標,鏈接,CSS類名稱等)。
我認為自定義標簽或過濾器將是一個解決方案
例如:以下
@register.filter
def settings_value(name):
return getattr(settings, name, "")
可以在模板中使用
{% load your_filters %}
{{ "MY_SETTINGS_NAME"|settings_value }}
您是否嘗試過這種方式? 也許您沒有選擇的余地:
# Python script
context['column_list'] = [
_('Animal'),
_('Owner'),
_('Reason'),
_('Time'),
_('Vet'),
_('Status')
]
context['cell_vars'] = [
'patient',
'client',
'reason',
'start_time',
'attending_staff',
'status'
]
g_context = zip(context['column_list'], context['cell_vars'])
# HTML
{% for column, var in g_context %}
{{ column }}
{{ var }}
{% endfor %}
這是您要的嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.