django模板-字符串连接到变量名

django模板-字符串连接到变量名,django,django-templates,Django,Django Templates,我想在django模板中使用一个变量,这个变量应该由两个字符串连接起来。下面是一个例子: 我想做: {% for item in ObjSearch %} ... 但是ObjSearch变量应该从Obj字符串和字段变量连接起来 要获取字符串,它的工作方式如下: {{ "Obj"|add:field }} {% for item in "Obj"|add:field %} {% load app_filters %} {{array|array_to

我想在django模板中使用一个变量,这个变量应该由两个字符串连接起来。下面是一个例子:

我想做:

{% for item in ObjSearch %} ...
但是ObjSearch变量应该从Obj字符串和字段变量连接起来

要获取字符串,它的工作方式如下:

{{ "Obj"|add:field }}
{% for item in "Obj"|add:field %}
{% load app_filters %}

{{array|array_to_string}}
但不幸的是,它不是这样工作的:

{{ "Obj"|add:field }}
{% for item in "Obj"|add:field %}
{% load app_filters %}

{{array|array_to_string}}

我怎样才能做到这一点

-----用更好的例子澄清-----

从这些视图中,我收到了Objsearch变量,它是一个列表(实际上是一个queryset,但它并不重要)

我不能直接使用Objsearch,搜索部分应该来自一个变量,因此:

“Obj”是一个字符串 字段是一个变量,其值为“搜索”


连接“Obj”字符串和字段变量,我将得到所需的Objsearch,但作为字符串,但我希望迭代Objsearch值。我需要python中类似eval的东西。

您可以尝试创建自定义模板标记

首先创建一个名为yourapp/templatetags的文件夹(记住在文件夹中添加一个init.py文件)。 然后在新文件夹中创建一个名为app_filters.py的文件(名称可以是您想要的任何名称)。在文件中添加:

from django import template
register = template.Library()

@register.filter(name='array_to_string')
def array_to_string(array):
    return ''.join(array)
您现在可以在模板中使用此方法,如下所示:

{{ "Obj"|add:field }}
{% for item in "Obj"|add:field %}
{% load app_filters %}

{{array|array_to_string}}

请澄清什么是field和Obj,以及你想要实现什么?告诉我们我用一个更好的例子编辑了原始问题。我希望足够清楚。谢谢,你找错地方了。在视图中修复它,而不是在模板中。只要把你需要的东西填入一个已知变量就行了。这很好,但目前还不可能。我无法更改视图文件中的任何内容。您不应该使用逻辑填充模板,这看起来确实很复杂,没有理由,您有多少不同的字段?我认为它仍然只会产生一个字符串,但我需要具有相同名称的变量。好的,现在我知道您正在尝试做什么了。我仍然会使用模板标记方法,并在app_filters.py中执行逻辑