регистрация 0.8 альфа активация проблема - PullRequest
1 голос
/ 02 января 2011

Получена следующая ошибка:

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)

Мой URL:

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

                       )

Что я делаю не так?

Спасибо!

Ответы [ 2 ]

1 голос
/ 03 января 2011

URL /accounts/account/activate/success/ соответствует URLconf для 'registration.views.activate' (секунда с конца), поскольку success соответствует \w+.Переместите реальный success URL (последний) выше этого, чтобы он соответствовал первому.

0 голосов
/ 03 января 2011

Ладно, сейчас это работает, но когда активируется файлization_complete.html, по-прежнему появляется сообщение о том, что ссылка для активации не работает, хотя пользователь активирован в базе данных!

Чтоидет не так?

/ craphunter

...