django-регистрация пользовательская форма регистрации (поле recaptcha) - PullRequest
0 голосов
/ 14 декабря 2009

Я пытаюсь добавить поле рекапчи в мою регистрационную форму и следую указаниям Маркоса:

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

В моем приложении для регистрации у меня есть файл "forms.py", который выглядит следующим образом:

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

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

и URL-адрес, который включается в мой каталог в / с учетными записями. 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'),
                      )

Теперь, когда я захожу в / account / register / я получаю это сообщение об ошибке:

Значение исключения: register () принимает как минимум 2 аргумента без ключевых слов (1 задано)

Понятия не имею, почему.

Ответы [ 3 ]

2 голосов
/ 14 декабря 2009

Первый аргумент без ключевого слова, который он запрашивает, это запрос, который получает автоматически.

Второй аргумент без ключевого слова, который он не получает, - аутентификационный бэкэнд .

Для быстрого запуска вы можете просто использовать бэкэнд по умолчанию , который поставляется с django-регистрацией. Я не могу легко проверить это сам, но это должно сделать это:

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'),
                       )

Взгляните на файл, на который вы ссылаетесь , начиная со строки 95 . Чтение этого должно рассказать вам все, что вам нужно знать.

0 голосов
/ 14 декабря 2009

'backend' не является необязательным аргументом. Не могли бы вы прикрепить трассировку стека вашего исключения? Похоже, он пытается использовать DefaultBackend в качестве строки.

0 голосов
/ 14 декабря 2009

Вы можете использовать recaptcha-client , Для пошаговой процедуры вы можете следовать k0001's блог работает из коробки.

...