2011-02-07 2 views
1

Я использую django-registration, которая как-то перестала работать так, как должна работать. Я полностью потерял это и не знаю, с чего начать искать ошибку.django-registration активирует пользователя, но показывает ошибку

Так что случается, что всякий раз, когда пользователь нажимает на ссылку активации, он получает шаблон activation.html. Это должно отображаться только при возникновении ошибки.

Но на самом деле нет ошибок. Пользователь активируется и может войти в систему.

Любые мысли об этом будут очень признательны.

ответ

1

Прежде всего, предмет вашего сообщения и фактическое описание противоречат друг другу. Субъект говорит, что регистрация django всегда не активирует пользователя, но затем в вашем описании вы говорите, что пользователь активируется и может войти в систему. Что это такое?

Во-вторых, нажатие на ссылку активации всегда должно посылать пользователю активировать.html. На этой странице вы будете иметь переменную, называемую account. Если активация прошла успешно, account будет заполнен объектом User, иначе это будет False.

+0

Вы правы, я исправил заголовок. Но я думаю, вы ошибаетесь в своем ответе. По крайней мере, документация: http://docs.b-list.org/django-registration/0.8/views.html гласит, что «При неудачной активации отобразит регистрацию шаблона/activate.html, чтобы отобразить сообщение об ошибке, чтобы переопределить thise, передайте аргумент template_name (см. ниже). " – Kai

+0

Действительно. В документах: 'registration/activate.html: Используется, если активация учетной записи не выполняется. ' –

+0

А, вы используете версию 0.8, которая, по-видимому, прошла полную переписку. Я все еще использую более старую версию, на которую я основывал свой ответ. Извини за это. –

1

Существует большая разница между 0,7 и 0,8:

в 0,7:

регистрация/activate.html отображается, когда пользователь пытается активировать его/ее счет.

в 0,8

регистрации/activate.html

Используется при сбое активации учетной записи.

+0

хорошо, что вводит в заблуждение, не так ли! lol –

+0

oh, и я не могу найти красиво отформатированные онлайн-документы для 0.7, но 0.8 только в альфе. hrmph. –

+0

docs за 0,7 https://bitbucket.org/ubernostrum/django-registration/src/d073602dc103/docs/ –

0

Отладка registration.views.activate показала: если success_url не установлен, вызывается метод backend.post_activation_redirect. Если вы используете бэкэнд по умолчанию, который возвращает пустой контекст без переменной учетной записи, которая запрашивается в шаблоне. Решение может заключаться в том, чтобы перезаписать бэкэнд по умолчанию. Единственная проблема в том, что вы не можете передавать какие-либо объекты в представления по перенаправлению. Следовательно, вы не можете передать учетную запись в контекст шаблона. Вы можете сделать это с получением параметров, если захотите. Я решил просто изменить шаблон активации и удалить условие.