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

gle*_*ich 28 django captcha registration

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

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

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

Ben*_*end 21

django-registration很可扩展.扩展它的一种方法是提供自定义注册表单.我建议你使用验证码,例如从部件和表单字段在这里(存档).然后就像编写自定义表单类和注册后端一样简单(比声音简单):

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
Run Code Online (Sandbox Code Playgroud)

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

  • 您可以避免子类化注册后端,将`urls.py`中的表单类设置为后端参数.例如:`(r'^ register/$',RegistrationView.as_view(form_class = RegistrationForm))`. (3认同)

Sal*_*lab 18

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

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

  1. 下载django-recaptcha(pip 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

就是这样.不到一分钟.

  • 不开玩笑 - 按照你的指示,花了不到一分钟..谢谢! (3认同)
  • 但是如果注册包没有复制到你的项目中,而是通过 pip install ... 安装呢? (2认同)

sil*_*ilo 16

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

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