Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

django message when logout

Tags:

django

Once an user logged out of the site, it should redirect to the home page and to display the message as "U are successfully logged out" in the top of the page. Anyone help me in displaying message in home page?

like image 871
Raji Avatar asked Jul 09 '12 11:07

Raji


2 Answers

You could use the user_logged_out signal combined with the messages framework:

First, make sure the messages framework is set up (https://docs.djangoproject.com/en/dev/ref/contrib/messages/).

Then include this code somewhere that will be called (I tend to put it in a receivers.py module and then import it from a models.py file in an installed app):

from django.contrib.auth.signals import user_logged_out
from django.dispatch import receiver
from django.contrib import messages


@receiver(user_logged_out)
def on_user_logged_out(sender, request, **kwargs):
    messages.add_message(request, messages.INFO, 'Logged out.')
like image 99
seddonym Avatar answered Sep 20 '22 01:09

seddonym


give a try to:

from django.contrib.auth.views import LogoutView

class YourCustomLogoutView(LogoutView):

    def get_next_page(self):
        next_page = super(YourCustomLogoutView, self).get_next_page()
        messages.add_message(
            self.request, messages.SUCCESS,
            'You successfully log out!'
        )
        return next_page

in urls:

url(r'^logout/$', YourCustomLogoutView.as_view(), {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout'),
like image 28
andilabs Avatar answered Sep 18 '22 01:09

andilabs