如何使用 widget_tweaks 自定义 django 注册表单的帮助文本?

How to customize django signup form's helper texts with widget_tweaks?

我正在尝试创建一个注册页面并在尝试时使用 Django 的默认注册表单。我对密码字段的帮助文本有疑问,因为我无法修复它。

这是我的 signup.html 的 body;

<body class="text-center">
    <form class="form-signin" method="POST">
      {% csrf_token %}
      <h1 class="h3 mb-3 font-weight-normal">Sign up</h1>
      {% for field in form %}
        <label for="{{ field.id_for_label_tag }}">{{ field.label_tag }}</label>
        {{ field | add_class:'form-control' }}
        {% for text in field %}
          <small style="color: grey">{{ field.help_text }}</small></br></br>
        {% endfor %}
        {% for error in field.errors %}
          <p style="color: red">{{ error }}</p>
        {% endfor %}
      {% endfor %}
      <button class="btn btn-lg btn-primary btn-block" type="submit">Sign up</button>
      <p class="mt-5 mb-3 text-muted">&copy; 2017-2018</p>
    </form>
</body>

这是页面的屏幕截图;

这也是另一个link的截图(如果打不开上面那个):https://prnt.sc/kcsmaf

正如我在屏幕截图中用红色箭头显示的那样,ulli 标签存在问题。它们不受样式的影响。我该如何解决?

默认情况下 Django 转义 变量的内容。例如 <li> 因为字符串被呈现为 &lt;li&gt;。这是经常需要的行为:假设用户写了一个像 'o(><)o' 这样的评论,那么你可能不想将其解释为 HTML,因为这可能意味着浏览器无法再解析其余部分文档。

但是您可以标记一个变量,使其使用safe [Django-doc]模板过滤器进行转义:

<body class="text-center">
    <form class="form-signin" method="POST">
      {% csrf_token %}
      <h1 class="h3 mb-3 font-weight-normal">Sign up</h1>
      {% for field in form %}
        <label for="{{ field.id_for_label_tag }}">{{ field.label_tag }}</label>
        {{ field | add_class:'form-control' }}
        {% for text in field %}
          <small style="color: grey">{{ field.help_text<b>|safe</b> }}</small></br></br>
        {% endfor %}
        {% for error in field.errors %}
          <p style="color: red">{{ error }}</p>
        {% endfor %}
      {% endfor %}
      <button class="btn btn-lg btn-primary btn-block" type="submit">Sign up</button>
      <p class="mt-5 mb-3 text-muted">© 2017-2018</p>
    </form>
</body>

在那种情况下,如果 help_text 例如包含一个 <li>,它将呈现为 HTML,因此浏览器可以将其呈现为列表。

但是请注意,如果您将某些内容标记为 safe,那么您应对它包含 有效 HTML 的事实负责,因此例如标签适当关闭等