我想知道如何顯示問候消息「歡迎用戶,您已登錄」,一旦用戶登錄,它應該在5秒內消失。django消息一旦登錄
該消息將在用戶成功登錄後顯示一次,但不會在同一會話中連續訪問主頁時顯示。因爲我在home.html中的會話中使用了用戶名。
我想知道如何顯示問候消息「歡迎用戶,您已登錄」,一旦用戶登錄,它應該在5秒內消失。django消息一旦登錄
該消息將在用戶成功登錄後顯示一次,但不會在同一會話中連續訪問主頁時顯示。因爲我在home.html中的會話中使用了用戶名。
使用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();
});
注意,您可以使用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的答案相同。
是的。現在它的工作。非常感謝.... – Raji 2012-03-16 13:28:42
但我在哪裏可以自定義消息。默認信息「您已經登錄」即將到來。請建議我 – Raji 2012-03-16 13:35:27
在視圖中。你在message.info(請求,「這是我的信息」)中傳遞你想要顯示的信息 – 2012-03-16 13:38:00