Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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
Python Django在模板标记中使用变量_Python_Django_Templates_Django Models_Django Templates - Fatal编程技术网

Python Django在模板标记中使用变量

Python Django在模板标记中使用变量,python,django,templates,django-models,django-templates,Python,Django,Templates,Django Models,Django Templates,我正在Django模板中使用静态模板标记: {% load staticfiles %} <img src="{% static "my_app/myexample.jpg" %}" alt="My image"/> {%load staticfiles%} 但是,我需要使用作为模型对象属性的文件名,而不是“my_app/myexample.jpg”(即{{SampleModel.0.propertyValue}},我将其作为上下文传递到此模板。但是如何在静态模板标记中包含{…}

我正在Django模板中使用静态模板标记:

{% load staticfiles %}
<img src="{% static "my_app/myexample.jpg" %}" alt="My image"/>
{%load staticfiles%}
但是,我需要使用作为模型对象属性的文件名,而不是
“my_app/myexample.jpg”
(即
{{SampleModel.0.propertyValue}}
,我将其作为上下文传递到此模板。但是如何在静态模板标记中包含
{…}
,它会抛出一个错误


有什么办法吗?

您可以在静态模板标记中使用变量。请注意,您不需要
{{
}

{% static SampleModel.0.propertyValue %} 

您可以在静态模板标记中使用变量。请注意,您不需要
{{
}

{% static SampleModel.0.propertyValue %} 

您可以在Django标记中使用上下文中的任何变量(自定义标记可能需要进行一些调整才能使用)。在您的情况下,这样做很好:

{% static SampleModel.0.propertyValue %} 
这种用法也适用于:

{% with my_computed_var=SampleModel.0.propertyValue %}
    {% static my_computed_var %} 
{% endwith %}

{% static some_var|customFilter %}

有关更多信息,请参阅,它也与Django默认标记相关。

您可以在Django标记中使用上下文中的任何变量(自定义标记可能需要一些调整才能使用)。在您的情况下,这很好:

{% static SampleModel.0.propertyValue %} 
这种用法也适用于:

{% with my_computed_var=SampleModel.0.propertyValue %}
    {% static my_computed_var %} 
{% endwith %}

{% static some_var|customFilter %}

有关更多信息,请参阅,它也与Django defaults标记相关。

如果包含动态值,该资产是否应该是静态的?您可能有充分的理由这样做,但这可能暗示应用程序设计不佳aswell@Mischback:我有文件名的图像,这些文件名可以由模型对象的属性生成。而不是t他的,那么我该如何处理这个问题……我个人会为这个用例编写我自己的模板标记:如果你包含一个动态值,那么这个资产应该是静态的吗?你可能有很好的理由这样做,但这可能暗示应用程序设计不好aswell@Mischback:我有可以由mo属性生成的具有文件名的图像del objects。而不是这个,我该如何解决这个问题。我个人会为这个用例编写我自己的模板标记:如果路径是“images/{{SampleModel.0.propertyValue}}.png”,那么你可以使用过滤器:
{%static“images”| add:SampleModel.0.propertyValue | add:“.png”%}
。如果路径是“images”/{{SampleModel.0.propertyValue}}.png“然后?然后您可以使用过滤器:
{%static”images“|添加:SampleModel.0.propertyValue |添加:“.png”%}