2012-04-28 6 views
2

Я пытаюсь настроить рабочий процесс активации django-регистрации, так что, когда пользователь нажимает на ссылку активации, он перенаправляет их на страницу входа с хорошим сообщением, используя Джанго сообщения рамочные django.contrib.messagesПереадресация активации Django-Registration с помощью django.contrib.messages

Прямо сейчас, я сумел отправить пользователю вернуться на главную страницу с помощью параметра success_url:

url(r'activate/(?P<activation_key>\w+)/$', 
    activate, 
    {'backend': 'registration.backends.default.DefaultBackend', 'success_url':'/'}, 
     name='registration_activate', 
    ), 

где '/' это вид дома для входа. Мне нужно установить сообщение об ошибке где-то по пути ... возможно, используя поле extra_context?

ответ

4

Django-registration is using signals Чтобы подключить некоторые пункты. В вашем случае это должно быть что-то вроде: ответ

from registration import signals 
def register_handler(request, **kwargs): 
    messages.success(request, 'Thank you!') 
signals.user_registered.connect(register_handler) 
0

ilvar является, вероятно, лучшим способом сделать это, но мне удалось получить его работу, обернув вокруг зрения зрения Джанго-регистрации.

В urls.py я теперь указывают на мой новый взгляд

url(r'^accounts/activate/(?P<activation_key>\w+)/$', 
     Custom_Activation_View.as_view(), 
     {'backend': 'registration.backends.default.DefaultBackend'}, 
     name='registration_activate'), 

и в моем views.py файле:

class Custom_Activation_View(TemplateView): 
     template_name='home.html' 

     def get(self, request, backend, success_url=None, extra_context=None, **kwargs): 
      messages.success(self.request, 'Activation complete, please login below') 

      return activate(self.request, backend, template_name=self.template_name, success_url='/', extra_context=None, **kwargs)