Django模板从di动态创建变量

2024-04-27 02:26:12 发布

您现在位置:Python中文网/ 问答频道 /正文

在一个模板中,我试图生成一组相似的元素。 简而言之,我有一些类似的台词:

{% include "some/path.html" with key1=value1 key2=value2 %}

{% include "some/path.html" with key2=value3 key4=value4 %}

等等。。。你知道吗

传递给with语句的变量是不同的。未传递给with语句的Rest变量具有“some”中描述的默认值/路径.html“模板。你知道吗

我的想法是将一些dict(或list)传递给template,template将把参数传递给基于dict的with语句。 例如,我会有dict:{0: {key1: value1, key2: value2}, 1: {key2: value3, key4: value4}} 这个dict将被求值为传递给with语句的参数。你知道吗

我怎样才能做到呢?或者,如果这是一个糟糕的解决方案,我能做些什么呢?你知道吗

我很想得到一些帮助!你知道吗


Tags: path模板includehtmlwithsome语句dict
2条回答

在模板中,可以使用“.”将数据访问到dicts/objects/whather中。你知道吗

试着在视图中这样将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中的值加载到您的上下文中了!耶!你知道吗

相关问题 更多 >