繁体   English   中英

为什么Django-simple-math-captcha不呈现问题?

[英]Why doesn't Django-simple-math-captcha render question?

我正在尝试将Django-simple-math-captcha集成到我的项目中,但是表单未提出问题。 我遵循了文档中的所有步骤,并呈现了表单:

{% for field in form %}
  {{ field.label_tag }}
  {{ field }}
  {% if field.errors %}
      {{ field.errors }}
  {% else %}
  {% endif %}
  {% endfor %}

我得到了验证码标签,即验证码:

和验证码答案输入

所有验证码错误消息,

但没问题。 我做错了什么?

我在Django 2.0+上尝试了此软件包,但验证码问题未得到呈现。 这是我从视图中打印表单时的输出:

System check identified no issues (0 silenced).
September 28, 2018 - 05:52:00
Django version 2.0.8, using settings 'stackover.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
<input type="text" name="captcha_0" size="5" required id="id_captcha_0" />
<input type="hidden" name="captcha_1" value="2b05507f9541c630c35d55509b05deea6e04e8cc" required id="id_captcha_1" />
[28/Sep/2018 05:52:03] "GET / HTTP/1.1" 200 118

如果您浏览了此软件包的源代码,您将看到问题被呈现为html类captcha-question ,上面的html输出中缺少该类。 但是,在将Django降级到1.8版后,我的模板中仅{{ form }}呈现了所有三个字段,如下所示,即问题,输入和隐藏的哈希答案。 因此,如果您使用的是Django 2.0+,则需要降级以使用此软件包,或者必须调整此软件包以使其与当前版本兼容(我想这是有些工作!)。 这是我认为的打印验证码表单的简单输出:

Django version 1.8, using settings 'stackover.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

<tr><th><label for="id_captcha_0">Captcha:</label></th>
<td><span class="captcha-question">What is the result of 1 - 1?</span>
<input id="id_captcha_0" name="captcha_0" size="5" type="text" />
<input id="id_captcha_1" name="captcha_1" type="hidden" value="aad5d3b0165de882bc40cfbfa47f8262d6d8f9da" /></td></tr>
[28/Sep/2018 06:19:03]"GET / HTTP/1.1" 200 425

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM