为什么变量使用django'设置'在include标签提供的模板中使用它时,标记分为单个字符串?

时间:2017-04-19 22:46:54

标签: django templatetags

我使用with标签来声明变量my_var。我在输入框中使用my_var作为占位符。只有my_var的第一个单词被识别为变量的一部分。如何识别整个字符串?我已明确提出"占位符='这是一个测试'"并且所有单词都显示为占位符,这使我相信它与使用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>

2 个答案:

答案 0 :(得分:1)

我认为您可能会错过模板{{my_var}}周围的一些引号 - 更改为"{{my_var}}"

答案 1 :(得分:0)

您可以将参数传递给include,如下所示:

{% include "emp/regfield.html" with field=form.username my_var="Must be at least 4 characters long." %}

摆脱 with包装器语句。只需使用include