2012-03-16 2 views
1

Я хотел бы знать, как отображать приветственное сообщение «Приветственный пользователь, вы вошли в систему» ​​после входа пользователя и он должен исчезнуть в течение 5 секунд.Сообщение django после входа в систему

Сообщение будет отображаться один раз после успешного входа пользователя в систему, но не снова при последовательном посещении домашней страницы в течение того же сеанса. Потому что я взял имя пользователя в сессии в home.html.

ответ

7

Использование django's messaging framework и wrap the login view:

from django.contrib import messages 
from django.contrib.auth.views import login 

def custom_login(request,*args, **kwargs): 
    response = login(request, *args, **kwargs): 
    if request.user.is_authenticated(): 
     messages.info(request, "Welcome ...") 
    return response 

и в шаблоне где-нибудь:

{% if messages %} 
<ul class="messages"> 
    {% for message in messages %} 
    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li> 
    {% endfor %} 
</ul> 
{% endif %} 

наряду с некоторыми jquery to hide any message after 5 seconds:

$(document).ready(function(){ 
    $('.messages').delay(5000).fadeOut(); 
}); 
+0

Да. Теперь его работа. Большое спасибо .... – Raji

+0

Но где я могу настроить сообщение. Сообщение по умолчанию «Вы вошли в систему» ​​наступает. Пожалуйста, предложите мне – Raji

+0

В представлении. Вы передаете сообщение, которое хотите отобразить в 'messages.info (запрос,« ЭТО МОЕ СООБЩЕНИЕ »)' –

4

Обратите внимание, что вы можете использовать user_logged_in сигнал для добавления сообщение, когда пользователь входит в систему , вместо того, чтобы обернуть вид входа в систему, как это делает pastylegs в его ответе.

# include this code somewhere it will be imported when the application loads 
from django.contrib import messages 
from django.contrib.auth.signals import user_logged_in 

def logged_in_message(sender, user, request, **kwargs): 
    """ 
    Add a welcome message when the user logs in 
    """ 
    messages.info(request, "Welcome ...") 

user_logged_in.connect(logged_in_message) 

Затем вы показываете сообщение и используете javascript так же, как ответ pastyleg.

Смежные вопросы