0

我尝试在我的注册表单中添加一个 recaptcha 字段并遵循 Marcos 指南:

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()

和一个 urls.py,它被我的解决方案范围的 urls.py 包含在 /accounts 下:

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

现在,当我转到 /accounts/register/ 时,我收到以下错误消息:

异常值:register() 至少需要 2 个非关键字参数(1 个给定)

我不知道为什么。

4

3 回答 3

2

它要求的第一个非关键字参数是 request,它是自动获取的。

它没有得到的第二个非关键字参数是authentication backend

为了快速上手,您可以使用django-registration 附带的默认后端。我自己不能轻易地测试这个,但应该这样做:

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 行开始链接到的文件。阅读它应该告诉你所有你需要知道的。

于 2009-12-14T12:18:58.097 回答
0

您可以使用recaptcha-client,对于分步过程,您可以按照k0001 的 博客进行操作,它开箱即用。

于 2009-12-14T12:52:22.693 回答
-1

'backend' 不是可选参数。你能附上你的异常的堆栈跟踪吗?似乎它正在尝试将 DefaultBackend 用作字符串。

于 2009-12-14T13:21:24.643 回答