0 votes

django-registration formulaire d'inscription personnalisé (champ recaptcha)

J'ai essayé d'ajouter un champ recaptcha à mon formulaire d'inscription et j'ai suivi le guide de Marcos :

http://www.marcofucci.com/tumblelog/26/jul/2009/integrating-recaptcha-with-django/

Dans mon application d'enregistrement, j'ai un fichier "forms.py" qui ressemble à ceci :

from recaptcha import fields as captcha_field
from registration.forms import RegistrationFormUniqueEmail

class RecaptchaRegistrationForm(RegistrationFormUniqueEmail):
  recaptcha = captcha_field.ReCaptchaField()

et un urls.py qui est inclus dans /accounts par ma solution large urls.py :

from django.conf.urls.defaults import *
from registration.views import register
from forms import RecaptchaRegistrationForm
urlpatterns = patterns('users.views',
                       (r'^$', 'profile'),
                       url(r'^register/$', register, {'form_class': RecaptchaRegistrationForm}, name='registration_register'),
                      )

Maintenant, quand je vais dans /accounts/register/ j'obtiens ce message d'erreur :

Valeur de l'exception : register() prend au moins 2 arguments non-mots clés (1 donné)

Je ne sais pas pourquoi.

2voto

John Debs Points 2266

Le premier argument non-mot clé qu'il demande est la demande, qui est obtenue automatiquement.

Le deuxième argument sans mot-clé, qu'il n'obtient pas, est le backend d'authentification .

Pour commencer rapidement, vous pouvez simplement utiliser la fonction backend par défaut qui est fourni avec django-registration. Je ne peux pas facilement tester cela moi-même, mais cela devrait le faire :

from django.conf.urls.defaults import *
from registration.views import register
from forms import RecaptchaRegistrationForm
from registration.backends.default import DefaultBackend
urlpatterns = patterns('trackerbase.users.views',
                       (r'^$', 'profile'),
                       url(r'^register/$', register, {
                       'backend': DefaultBackend,
                       'form_class': RecaptchaRegistrationForm,
                       }, name='registration_register'),
                       )

Jetez un coup d'œil au fichier dont vous avez le lien à partir de la ligne 95 . La lecture de ce document devrait vous dire tout ce que vous avez besoin de savoir.

0voto

Prashanth Points 546

Vous pouvez utiliser recaptcha-client Pour la procédure étape par étape, vous pouvez suivre k0001's blog il fonctionne hors de la boîte.

0voto

Marco Fucci Points 325

Le "backend" n'est pas un argument facultatif. Pouvez-vous joindre le suivi de pile de votre exception ? Il semble que l'on essaie d'utiliser DefaultBackend comme une chaîne de caractères.

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