27 votes

Captcha django ou application d'enregistrement facile à utiliser avec captcha?

Je veux implémenter l'enregistrement des utilisateurs à l'aide de captcha dans Django. Le flux de travail de l'application django-registration est excellent, mais il n'a pas de captcha.

Quel captcha recommanderiez-vous d'utiliser avec lui? Existe-t-il d'autres variantes d'enregistrement + captcha ou des liens utiles sur le sujet?

Cela devrait fonctionner avec Django-1.1 et ne pas être trop difficile à installer.

18voto

Benjamin Wohlwend Points 14976

django-inscription est assez extensible. Une façon d'étendre il est de fournir une coutume formulaire d'inscription. Je vous recommande d'utiliser reCaptcha, par exemple avec le widget et le champ de formulaire à partir d' ici (archivé). Ensuite, il est aussi simple que la rédaction d'un formulaire personnalisé de la classe et de l'enregistrement backend (ce qui est plus simple qu'il n'y paraît):

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

La dernière étape est d'indiquer à django-inscription pour l'utilisation de votre backend. Cette étape est décrite dans les docs (je ne pouvais pas trouver une version HTML de la documentation, désolé)

16voto

sillygwailo Points 1571

Pour ceux qui comme moi d'arriver en retard pour le fil, il y a un tas de solutions là-bas maintenant, qui sont assez faciles à installer:

J'ai réussi l'installation de Django Mollom et Django Simple Captcha, et la partie la plus difficile a été de yak raser autour de l'installation de PIL sur mon Mac. Mise en œuvre du code est aussi simple que les docs pour chaque suggère.

14voto

TheBronx Points 2218

J'ai juste eu ce problème, mais la solution est simple.

Je suis l'aide de django-enregistrement, et je veux un reCAPTCHA de champ pour l'enregistrement de l'utilisateur. En 1 minute:

  1. télécharger django-recaptcha
  2. l'installer sur votre projet. C'est, copiez le "captcha" dossier de votre projet, ajouter un "captcha" pour INSTALLED_APPS et ajouter votre RECAPTCHA_PUBLIC_KEY et RECAPTCHA_PRIVATE_KEY clés settings.py trop (comme décrit dans les instructions d'installation)
  3. ouvrez registration/forms.py et ajouter ce champ à l'intérieur d' class RegistrationForm(forms.Form):

    captcha = ReCaptchaField()

    vous aurez également à l'importation:

    from captcha.fields import ReCaptchaField

Et c'est tout. Moins d'une minute.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X