出现以下错误:
Exception Type: TypeError at /accounts/account/activate/success/
Exception Value: activate() takes at least 2 non-keyword arguments (1 given)
我的观点:
def activate(request, backend,
template_name='registration/activation_complete.html',
success_url=None, extra_context=None, **kwargs):
backend = get_backend(backend)
account = backend.activate(request, **kwargs)
if account:
if success_url is None:
to, args, kwargs = backend.post_activation_redirect(request, account)
return redirect(to, *args, **kwargs)
else:
return redirect(success_url)
if extra_context is None:
extra_context = {}
context = RequestContext(request)
for key, value in extra_context.items():
context[key] = callable(value) and value() or value
return render_to_response(template_name,
kwargs,
context_instance=context)
我的网址:
urlpatterns = patterns('',
url(r'^activate/complete/$',
direct_to_template,
{ 'template': 'registration/activation_complete.html' },
name='registration_activation_complete'),
# Activation keys get matched by \w+ instead of the more specific
# [a-fA-F0-9]{40} because a bad activation key should still get to the view;
# that way it can return a sensible "invalid key" message instead of a
# confusing 404.
url(r'^activate/(?P<activation_key>\w+)/$',
activate,
{ 'backend': 'registration.backends.default.DefaultBackend' },
name='registration_activate'),
url(r'^register/$',
register,
{ 'backend': 'registration.backends.default.DefaultBackend' },
name='registration_register'),
url(r'^register/complete/$',
direct_to_template,
{ 'template': 'registration/registration_complete.html' },
name='registration_complete'),
url(r'^register/closed/$',
direct_to_template,
{ 'template': 'registration/registration_closed.html' },
name='registration_disallowed'),
(r'', include('registration.auth_urls')),
url(r'^account/activate/(?P<activation_key>\w+)/$', 'registration.views.activate', {'success_url': 'account/activate/success/'}, name='registration_activate2'),
url(r'^account/activate/success/$', direct_to_template, {'template': 'registration/activation_complete.html'}, name='registration_activation_complete'),
)
我做错了什么?
谢谢!
答案 0 :(得分:1)
网址/accounts/account/activate/success/
与'registration.views.activate'
的网址匹配(从结尾开始),因为success
与\w+
匹配。将真实success
网址(最后一个)移到此网址之上,以便首先进行匹配。
答案 1 :(得分:0)
好的,这现在正在运行,但是当activation_complete.html即将到来时,仍然会出现一条消息,说明激活链接不起作用,尽管用户已在数据库中激活!
出了什么问题?
/ craphunter