易于使用的django验证码或注册应用程序与验证码?

时间:2010-02-16 19:46:44

标签: django captcha registration

我想在Django中使用captcha实现用户注册。 django-registration app的工作流程很棒,但它没有验证码。

您建议使用哪种验证码? 是否有其他一些注册+验证码变体或有关该主题的有用链接?

这应该适用于Django-1.1并且安装起来不会太难。

3 个答案:

答案 0 :(得分:21)

django-registration非常容易扩展。扩展它的一种方法是提供自定义注册表单。我建议使用reCaptcha,例如使用herearchived)中的小部件和表单字段。然后就像编写自定义表单类和注册后端一样简单(比声音更简单):

from registration.backends.default import DefaultBackend
from registration.forms import RegistrationForm

class RecaptchaRegistrationForm(RegistrationForm)
    recaptcha = ReCaptchaField(label="I'm a human")

class RecaptchaRegistrationBackend(DefaultBackend):
    def get_form_class(self, request):
        return RecaptchaRegistrationForm

最后一步是告诉django-registration使用你的后端。该步骤在docs中进行了描述(我找不到HTML版本的文档,抱歉)

答案 1 :(得分:18)

我刚遇到这个问题,但解决方案很简单。

我正在使用django-registration,我想要一个用于用户注册的reCAPTCHA字段。只需1分钟:

  1. 下载django-recaptchapip install django-recaptcha

  2. 在您的项目上安装它。也就是说,将“captcha”文件夹复制到项目中,将“captcha”添加到INSTALLED_APPS并将RECAPTCHA_PUBLIC_KEYRECAPTCHA_PRIVATE_KEY键添加到settings.py中(如安装说明中所述) )

  3. 打开registration/forms.py并在class RegistrationForm(forms.Form):

    中添加此字段

    captcha = ReCaptchaField()

    您还必须导入:

    from captcha.fields import ReCaptchaField

  4. 就是这样。不到一分钟。

答案 2 :(得分:16)

对于像我这样迟到线程的人来说,现在有很多解决方案,这些解决方案很容易安装:

我已经成功设置了Django Mollom和Django Simple Captcha,最难的部分是在我的Mac上安装PIL时牦牛剃须。实现代码与每个人建议的文档一样简单。