[英]Django templates - dynamically create variables from dict
在一個模板中,我試圖生成一組相似的元素。 簡而言之,我有一些類似之處:
{%包含具有key1 = value1 key2 = value2%的“ some / path.html”}
{%包含key2 = value3 key4 = value4%的“ some / path.html”}
等等...
和傳遞給with
語句的變量是不同的。 未傳遞給with
語句的其余變量具有“ some / path.html”模板中描述的默認值。
我的想法是將一些dict(或列表)傳遞給模板,並且模板會將基於dict的參數傳遞給with
語句。 例如,我將擁有dict: {0: {key1: value1, key2: value2}, 1: {key2: value3, key4: value4}}
而該dict將被轉儲為with
語句傳遞給的參數。
我該如何實現? 或者,如果解決方案不好,我該怎么辦?
我很樂意為此提供幫助!
在模板中,您可以將數據訪問dicts / objects /與“。”一起。
嘗試在視圖中將dict傳遞到您的上下文中,如下所示:
context['my_dict'] = {0: {key1: value1, key2: value2}, 1: {key2: value3, key4: value4}}
然后,您可以在模板中像這樣訪問它:
{% include "some/path.html" with key1=my_dict.0.key1 key2=my_dict.0.key2 %}
{% include "some/path.html" with key2=my_dict.1.key2 key4=my_dict.1.key4 %}
希望對您有幫助。
我抓撓了很多頭,想出了這個! 會發布,所以也許會有用。 在/yoursite/templatetags/yourcustomtag.py
類型中
from django import template
import sys
register = template.Library()
@register.simple_tag(takes_context=True)
def yourTag(context):
for k, v in your_dict_in_this_context:
context[k] = v
return
然后在您的模板中調用
{% load yourcustomtag %}
{% yourTag %}
並且您已將dict中的值加載到您的上下文中! 好極了!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.