Как отобразить ValidationError в шаблоне Django?
Я новичок в Django, и прошу помощи у сообщества.
 Сейчас я работаю над регистрацией пользователей и хочу сделать проверку пароля: если пароль не повторяется, то под нижним полем появляется сообщение. Насколько я понимаю, {{ form.errors }} должен использоваться для вывода текста ошибки, указанного в ValidationError, но когда эта ошибка возникает, ее текст не выводится на страницу.
Подскажите, пожалуйста, как решить эту проблему. Возможно, я не совсем понял, как работают формы Django.
Я пробовал решения, предложенные в других ответах, но, к сожалению, пока ничего не получилось.
Спасибо.
forms.py:
from .models import CustomUser
class RegisterUserForm(forms.ModelForm):
    email = forms.EmailField(required=True,
                            label="Адрес электронной почты",
                            widget=forms.EmailInput(attrs={'class': 'form-control',
                                                        'placeholder':'email'}))
    password = forms.CharField(label='Пароль',
                            widget=forms.PasswordInput(attrs={'class': 'form-control',
                                                            'placeholder':'password'})                                                            )
    confirm_password = forms.CharField(label='Пароль(повторно)',
                            widget=forms.PasswordInput(attrs={'class': 'form-control',
                                                            'placeholder':'confirm password'}))
    def clean(self):
        super().clean()
        password = self.cleaned_data['password']
        confirm_password = self.cleaned_data['confirm_password']
        if password != confirm_password:
            raise ValidationError({'confirm_password': 'пароли не совпадают'})
views.py:
def sign_up(request):
    if request.method=="POST":
        form = RegisterUserForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('pages:index')
    form = RegisterUserForm()
    return render(request=request, template_name="users/sign_up.html", context={'form': form})
Шаблон:
</head>
    <link rel="stylesheet" type="text/css" href="{% static 'users/css/style.css' %}">
<head>
<div class="text-center log-in-bg rounded">
    <img class="mb-4" src="{% static "users/images/logo_sign_in.png" %}" alt="" width="72" height="72">
    <h1 class="h3 mb-3 font-weight-normal text-dark">РЕГИСТРАЦИЯ</h1>
    <form method="post" class="form-signin">
        {% csrf_token %}
        {{ form.email.label_tag }}
        {{ form.email }}
        {{ form.password }}
        {{ form.confirm_password }}
        {{ form.errors }}
        <button class="btn btn-lg btn-sign-in btn-block">Зарегистрироваться</button>
    </form>
</div>
Спасибо за помощь. Надеюсь, мой вопрос не слишком примитивен - я только в начале изучения Django, могу не знать некоторых вещей =)
Вариант 1)
Обычно ошибки валидации в clean() появляются в
{{ form.non_field_errors }} 
... потому что они не связаны с конкретным полем. В данном случае речь идет о двух полях. Если вы включите вышеуказанное в свой шаблон и измените сообщение об ошибке на...
raise ValidationError('пароли не совпадают')
...тогда ошибка должна появиться на вашей странице.
Вариант 2)
Присмотревшись внимательнее, я вижу, что вы пытались добавить это сообщение об ошибке для поля confirm_password. Хотя это не по умолчанию, если вы хотите обрабатывать это таким образом, вы можете удалить текущие строки raise ValidationError и использовать следующее в вашем методе clean, чтобы назначить ошибку определенному полю.
self.add_error('confirm_password', 'пароли не совпадают')
                    Ошибка была в представлении. Это исправленный вид:
def sign_up(request):
    if request.method=="POST":
        form = RegisterUserForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('pages:index')
    else:        
        form = RegisterUserForm()
    return render(request, template_name="users/sign_up.html", context={'form': form})
 Я делал новый запрос к форме. И контекст с ошибками был очищен.
Использование else помогло мне сохранить этот контекст. С другой стороны ответ SamSparx помог мне понять, как использовать add_error.