我正在使用flask-recaptcha创建一个包含reCAPTCHA v2的表单,当用户单击提交按钮而不检查reCAPTCHA时,我遇到一些问题来获取错误消息。它最初不应该显示错误消息,但是在提交时没有reCAPTCHA时,现在应该出现一条消息。验证表单的常见功能。
在学习烧瓶时,我以本教程为例(https://github.com/CoreyMSchafer/code_snippets/tree/master/Python/Flask_Blog/03-Forms-and-Validation)。
通常对于其他字段(例如用户名),使用以下代码:
{% if form.username.errors %}
{{ form.username(class="form-control form-control-lg is-invalid") }}
<div class="invalid-feedback">
{% for error in form.username.errors %}
<span>{{ error }}</span>
{% endfor %}
</div>
{% else %}
{{ form.username(class="form-control form-control-lg") }}
{% endif %}
基于同样的想法,我希望有一个与前一种情况类似的内容,即在尝试提交而不检查recapcha后,仅在发生错误时显示错误消息。显然,以下代码不起作用
{% if form.recaptcha.errors %}
{{ form.repactha }}
<div>
{% for error in form.recaptcha.errors %}
<span>{{ error }}</span>
{% endfor %}
</div>
{% else %}
{{ form.recaptcha }}
{% endif %},
我现在所拥有的解决方法非常丑陋,如下所示
<div>
{% if not form.recaptcha.verify %}
{{ form.recaptcha }}
<div>
<span>Please, don\'t forget to click on the captcha</span>
</div>
{% else %}
{{ form.recaptcha }}
{% endif %}
</div>
这种方法的问题是,消息总是在重新验证无效时出现(即使在第一次执行时)。
我该如何改善呢?