Как: настроить ошибки django Usercreationform - PullRequest
0 голосов
/ 28 апреля 2019

Я создаю систему входа в систему и регистрации с помощью Usercreationform, но всякий раз, когда пользователь вводит некоторые неправильные данные, он отображается как обычный черный текст под полем, в котором произошла ошибка, которая действительно не привлекает внимание пользователей.Как я могу отредактировать HTML в сообщении об ошибке, чтобы ошибка стала красной или что-то в этом роде.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Учебное пособие по визуализации форм вручную

А конкретнее, как отображать ошибки красным цветом.

{% 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 %}
0 голосов
/ 28 апреля 2019

Взгляните на Django-Crispy-Form, он загрузит автоматически вашу форму, поэтому ошибка и форма будут выглядеть лучше практически без усилий.

Вот как добавить его в ваш проект:

Установка django-crispy-форм

Установите последнюю стабильную версию в путь к Python, используя pip или easy_install:

pip install --upgrade django-crispy-forms

Добавьте crispy_forms к вашему INSTALLED_APPS в settings.py:

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>

Тогда, если вы хотите использовать его, просто загрузите тег и добавьте | crispy после вашей формы (в html), например:

{% 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...