Я пытаюсь создать простую страницу регистрации пользователя. Я хочу, чтобы он включал капчу для проверки. Я использую django-simple-captcha для этой цели. (Если есть лучшая библиотека, скажи мне ...)
Пока все работает отлично, за исключением того, что когда капча неверна, пользователь не уведомляется - он просто возвращается на экран регистрации. Как я могу напечатать конкретное сообщение ValidationError, когда капча недействительна? (Я также использую django-crispy-формы, если это имеет какое-либо значение)
шаблон:
{% extends "base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content-section">
<form method="POST">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Registration</legend>
{{ form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Sign Up</button>
</div>
</form>
<div class="border-top pt-3">
<small class="text-muted">Already Have An Account?<a class="ml-2" href="{% url 'login' %}">Log in</a></small>
</div>
</div>
{% endblock content %}
модель формы:
class UserRegisterForm(UserCreationForm):
email = forms.EmailField(validators=[validate_email])
captcha = CaptchaField()
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2'] # including 'captcha here didn't seem to make a difference
и вид:
def register(request):
if request.method == 'POST':
form = UserRegisterForm(request.POST)
if form.is_valid():
*do unrelated things*
return redirect('login')
else:
form = UserRegisterForm()
return render(request, 'register-template-url', {'form': form})