2014-01-30 66 views
0

我使用django_registration和django_registration电子邮件在我的应用程序上实现了身份验证。这里是我的代码:帐户激活时出错django_registration_email

settings.py

INSTALLED_APPS = (
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.admin', 
'django.contrib.admindocs', 

#custom apps 
'order', 
'fiesta', 

#3rd party apps 
'south', 
'jquery', 
'djangoformsetjs', 

# DEVELOPER TOOLS 
'debug_toolbar', 
#authentication apps 
'registration', 
'registration_email', 

#DJANGO REGISTRATION SETTINGS 

ACCOUNT_ACTIVATION_DAYS = 7 # one week activation window 

AUTHENTICATION_BACKENDS = (
'registration_email.auth.EmailBackend', 
) 

LOGIN_REDIRECT_URL = '/' 

urls.py

urlpatterns = patterns('', 
url(r'^$', lambda x:HttpResponseRedirect("/fiesta/workspace/"), name="home"), 
url(r'^admin/', include(admin.site.urls)), 
url(r'^accounts/', include('registration_email.backends.default.urls')), 
url(r'^fiesta/', include('fiesta.urls')), 

注册电子邮件被发送还好,但是当我的账户激活链接上点击,这里是错误我得到:

Traceback: 
File "/home/blaqx/.virtualenv/django5/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
115.response = callback(request, *callback_args, **callback_kwargs) 
File "/home/blaqx/.virtualenv/django5/lib/python2.7/site-packages/django/views/generic/base.py" in view 
68.return self.dispatch(request, *args, **kwargs) 
File "/home/blaqx/.virtualenv/django5/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch 
86.return handler(request, *args, **kwargs) 
File "/home/blaqx/.virtualenv/django5/lib/python2.7/site-packages/registration/views.py" in get 
126.success_url = self.get_success_url(request, activated_user) 

Exception Type: TypeError at /accounts/activate/bf93e2619ad0b7419b34dc0284e172fae8ecafef/ 
Exception Value: 'str' object is not callable 

差错,我可以看到账户激活过程中,参考正在以制作django注册,而不是django注册电子邮件。但我不知道这是错误的原因以及如何解决。任何帮助将不胜感激。

+0

当你说:账户激活链接,这里是指向你的链接urls.py和该链接的视图? –

+0

LearningNeverStops,url(r'^ accounts /',include('registration_email.backends.default.urls'))将注册URL映射到它们各自的视图。查看django_registration_email设置说明。 – Wedava

回答

0

首先使用两个包同样的目的(即;发送电子邮件激活),这里packeges,

  1. Django的注册电子邮件
  2. Django的注册

选择从上面的一个包。我选择django注册,在这里文档https://django-registration.readthedocs.org

并遵循代码指令,

settings.py

INSTALLED_APPS = (
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.admin', 
'django.contrib.admindocs', 

#custom apps 
'order', 
'fiesta', 

#3rd party apps 
'south', 
'jquery', 
'djangoformsetjs', 

# DEVELOPER TOOLS 
'debug_toolbar', 
#authentication apps 
'registration', 
#'registration_email', 
) 

#DJANGO REGISTRATION SETTINGS 

ACCOUNT_ACTIVATION_DAYS = 7 # one week activation window 

#AUTHENTICATION_BACKENDS = (
#'registration_email.auth.EmailBackend', 
#) 

LOGIN_REDIRECT_URL = '/' 

urls.py

urlpatterns = patterns('', 
url(r'^$', lambda x:HttpResponseRedirect("/fiesta/workspace/"), name="home"), 
url(r'^admin/', include(admin.site.urls)), 
url(r'^accounts/', include('registration.backends.default.urls')), 
url(r'^fiesta/', include('fiesta.urls')), 
) 
+0

Dhana,在应用程序中,我打算使用django-registration-email,以便将电子邮件用作注册的唯一字段。请参阅https://github.com/bitmazk/django-registration-email。之前我已经使用过几次以上的设置,但是我不知道这次错误来自哪里。 – Wedava