Django的注册自定义登记表(验证码字段)
我尝试将验证码字段添加到我的登记表,随后马科斯指南:Django的注册自定义登记表(验证码字段)
http://www.marcofucci.com/tumblelog/26/jul/2009/integrating-recaptcha-with-django/
在我的注册应用程序,我有一个文件“的形式。 PY”它看起来像这样:
from recaptcha import fields as captcha_field
from registration.forms import RegistrationFormUniqueEmail
class RecaptchaRegistrationForm(RegistrationFormUniqueEmail):
recaptcha = captcha_field.ReCaptchaField()
并得到由我的解决方案广泛urls.py下/账户包括一个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'),
)
现在,当我去/帐号/注册/我收到此错误信息:
Exception Value: register() takes at least 2 non-keyword arguments (1 given)
我不知道为什么。
“backend”不是可选参数。 你能否附上你异常的堆栈跟踪? 它似乎试图使用DefaultBackend作为一个字符串。
回溯: 文件“/usr/lib/pymodules/python2.6/django/core/handlers/base.py”在get_response 92.响应=回调(请求,* callback_args,** callback_kwargs) 文件“/usr/local/lib/python2.6/dist-packages/registration/views.py”在寄存器 178中。backend = get_backend(后端) 文件“/ usr /local/lib/python2.6/dist-packages/registration/backends/__init__.py“in get_backend 22. i = path.rfind('。') 异常类型:AttributeError at/accounts/register/ 异常值:type object'DefaultBackend'没有属性'rfind' – Kai 2009-12-14 13:29:40
嗯,我试过了:'backend':'registration.backends.default.DefaultBackend'是没有错误信息了,但同时,我也没有得到任何recaptcha领域。 – Kai 2009-12-14 14:03:31
3种可能性: 1 - 您尚未指定'form_class'参数(如果未提供,将从注册后端检索) 2 - 您没有使用{{form}}显示您的表单或{{form_as_p}}) 3 - 您的recaptcha配置存在一些问题。在这种情况下,请尝试使用python shell创建表单并打印它。如果没有正确配置,您应该会看到一个错误。 – 2009-12-14 15:14:47
它要求的第一个非关键字参数是request,它是自动获取的。
第二个非关键字参数,它没有得到,是authentication backend。
要快速行动,您可以使用django注册附带的default backend。我不能轻易这个测试自己,但是这应该这样做:
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'),
)
看看您链接到starting at line 95文件。阅读后应该告诉你所有你需要知道的。
我以前试过,它不工作。我得到这个错误: >异常值:类型对象'DefaultBackend'没有属性'rfind' 因为它,并且因为它说后端是一个可选参数,我认为这只是错误的方式得到它工作,并没有在我的问题中提到它。 – Kai 2009-12-14 12:37:50
尝试'后端':'registration.backends.default.DefaultBackend'。 – luc 2010-07-16 07:09:39
当我尝试从registration.forms导入RegistrationForm以及视图时,从相同的marcofucci博客实现验证码时,我总是在此行上发生错误。我去了蟒蛇外壳和我没有得到这样的警告,请帮助我 – vkrams 2012-09-17 11:17:31
你可以显示'register'视图的代码吗? – 2009-12-14 10:44:22
django注册视图的代码在这里:http://bitbucket.org/ubernostrum/django-registration/src/tip/registration/views.py – Kai 2009-12-14 11:23:19