Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在另一个标记中使用Django模板标记?_Django_Django Templates - Fatal编程技术网

如何在另一个标记中使用Django模板标记?

如何在另一个标记中使用Django模板标记?,django,django-templates,Django,Django Templates,我有一个Django网站,我正在努力实现国际化。图像文件都用两个字母的语言代码编码。因此,当用户切换语言时,将使用模板中的语言代码更新对图像文件的引用,如下所示: <img src="{% static 'website/images/contact_us_{{ LANGUAGE_CODE }}.png' %}"> 问题是,对于静态内容的路径,我还必须有一个标记。解决这个问题的优雅方法是什么?根据@MarAja的建议,我遵循了他/她的问题和解决方案,这与我的问题和解决方案几乎相

我有一个Django网站,我正在努力实现国际化。图像文件都用两个字母的语言代码编码。因此,当用户切换语言时,将使用模板中的语言代码更新对图像文件的引用,如下所示:

<img src="{% static 'website/images/contact_us_{{ LANGUAGE_CODE }}.png' %}">


问题是,对于静态内容的路径,我还必须有一个标记。解决这个问题的优雅方法是什么?

根据@MarAja的建议,我遵循了他/她的问题和解决方案,这与我的问题和解决方案几乎相同。我正在发布我所做的,所以无论谁登陆这个页面都有一个解决方案。在我的研究中,我没有偶然发现@MarAja的帖子

代码是一个精确的副本,选择不使用
add
标记是因为根据Django文档,它试图将参数转换为int,即不用于字符串

完整代码:

# Custom Template tag file named "custom_app_tags.py"
from django import template

register = template.Library()

@register.filter
def addstr(s1, s2):
    return str(s1) + str(s2)
最后,用法:

{% load staticfiles %}
{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}
{% load custom_app_tags %}

<img src="{% static 'website/images/contact_us_'|addstr:LANGUAGE_CODE|addstr:'.png' %}">
{%load staticfiles%}
{%load i18n%}
{%get_当前语言为语言代码%}
{%加载自定义应用程序标签%}

请注意,我包含了所有内容,以便稍后到达此处的任何人都能全面了解正在发生的事情。

中已经讨论过-您必须从视图中传递它,然后才能使用它。我有同样的问题,您也可以检查和相关的答案。@dmitryro我认为他的问题不是将数据传递到视图。我想他明白这一点。他的问题更多的是使用“静态标记中的模板标记”(这实际上似乎不可能)。他应该根据我在类似问题上得到的答案使用| add函数(详见上文)。你创建一个自定义模板标记,加载它{%load your|tags%}并使用它{%your|tag | code%},这将一起解决问题。感谢大家的贡献,问题得到了解决:)