为什么在 include 标签提供的模板中使用 django 'with' 标签的变量集被分解成单独的字符串?
Why is the variable set using the django 'with' tag broken into individual strings when using it in a template provided by the include tag?
我正在使用 with 标签声明一个变量 my_var。我在输入框中使用 my_var 作为占位符。只有 my_var 的第一个单词被识别为变量的一部分。如何识别整个字符串?我已经明确地输入 "placeholder='this is a test'" 并且所有的单词都显示为占位符,这让我相信它与使用 django templatetags 而不是占位符本身有关。 This picture shows only the word "Must" being displayed.
<input type="text" class="form-control" id="username" placeholder="Must" be="" at="" least="" 4="" characters="" long="" (underscore="" period).="">
上面显示my_var被打成碎片,请问有什么问题吗?这是声明 my_var
的代码
{% with form.username as field %}
{% with "Must be at least 4 characters long." as my_var%}
{% include "emp/regfield.html" %}
{% endwith %}
{% endwith %}
regfield.html 看起来像这样
<div id="div_{{ field.name }}" class="form-group">
<label for="id_{{ field.name }}">{{ field.label }}</label>
<input type="text" class="form-control" id="{{ field.name }}" placeholder={{ my_var }}>
<div id="{{ field.name }}_error" class="error_div">
{{ field.errors }}
</div>
</div>
我认为您的模板 {{my_var}}
周围可能遗漏了一些引号 - 更改为 "{{my_var}}"
。
您可以像这样将参数传递给 include
:
{% include "emp/regfield.html" with field=form.username my_var="Must be at least 4 characters long." %}
和 摆脱 with
包装语句。只需使用 include
.
我正在使用 with 标签声明一个变量 my_var。我在输入框中使用 my_var 作为占位符。只有 my_var 的第一个单词被识别为变量的一部分。如何识别整个字符串?我已经明确地输入 "placeholder='this is a test'" 并且所有的单词都显示为占位符,这让我相信它与使用 django templatetags 而不是占位符本身有关。 This picture shows only the word "Must" being displayed.
<input type="text" class="form-control" id="username" placeholder="Must" be="" at="" least="" 4="" characters="" long="" (underscore="" period).="">
上面显示my_var被打成碎片,请问有什么问题吗?这是声明 my_var
的代码 {% with form.username as field %}
{% with "Must be at least 4 characters long." as my_var%}
{% include "emp/regfield.html" %}
{% endwith %}
{% endwith %}
regfield.html 看起来像这样
<div id="div_{{ field.name }}" class="form-group">
<label for="id_{{ field.name }}">{{ field.label }}</label>
<input type="text" class="form-control" id="{{ field.name }}" placeholder={{ my_var }}>
<div id="{{ field.name }}_error" class="error_div">
{{ field.errors }}
</div>
</div>
我认为您的模板 {{my_var}}
周围可能遗漏了一些引号 - 更改为 "{{my_var}}"
。
您可以像这样将参数传递给 include
:
{% include "emp/regfield.html" with field=form.username my_var="Must be at least 4 characters long." %}
和 摆脱 with
包装语句。只需使用 include
.