如何:自定义Django Usercreationform错误

时间:2019-04-28 09:47:46

标签: django

我使用Usercreationform创建了一个登录和注册系统,但是每当用户输入一些错误数据时,它就会在该字段下显示为正常的黑色文本,而该错误实际上并没有引起用户的注意。如何在错误消息中编辑html,使错误变为红色或类似的内容。

2 个答案:

答案 0 :(得分:0)

看看Django-Crispy-Form,它会bootstrap自动使您的表单变得如此神奇,从而几乎不费吹灰之力就能使错误和表单看起来更好。

以下是将其添加到项目中的方法:

安装django-crispy-forms

使用pip或easy_install将最新的稳定版本安装到您​​的python路径中:

pip install --upgrade django-crispy-forms

在settings.py中将crispy_forms添加到您的INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'crispy_forms',
)
CRISPY_TEMPLATE_PACK = 'bootstrap4'

在HTML标头中不要忘记添加

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

和身体的尽头:

<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>

然后,如果您想使用它,只需加载标签,然后在表单(在html中)后添加| crispy,如:

{% load crispy_forms_tags %}
  <form method="post">
    {% csrf_token %}
    {{ form|crispy }}
    <button type="submit" class="btn btn-primary">Sign in</button>
  </form>

为了方便起见,请参考项目文档:https://django-crispy-forms.readthedocs.io/en/latest/

有关它的教程:https://simpleisbetterthancomplex.com/tutorial/2018/11/28/advanced-form-rendering-with-django-crispy-forms.html

答案 1 :(得分:0)

Tutorial on how to render forms manually

并具体说明如何用红色呈现错误。

{% if field.errors %}
   <ul style="list-style-type: none; color:red">
   {% for error in field.errors %}
        <li><strong>{{ error|escape }}</strong></li>
   {% endfor %}
   </ul>
{% endif %}