我有一个注销视图,当用户成功注销时,我想执行一个jQuery函数,说“你已经退出了!”在吐司弹出。如何从Django视图调用jQuery函数。我从这里得到了jQuery代码:http://shawntabai.com/wp/2011/09/06/toast-notifications-using-jquery/
VIEWS.PY:
def signout(request):
logout(request)
return HttpResponseRedirect(reverse(index))
jQuery函数存储在我的标题中:
<head>
<script type="text/javascript">
function toast(sMessage)
{
var container = $(document.createElement("div"));
container.addClass("toast");
var message = $(document.createElement("div"));
message.addClass("message");
message.text(sMessage);
message.appendTo(container);
container.appendTo(document.body);
container.delay(100).fadeIn("slow", function()
{
$(this).delay(2000).fadeOut("slow", function()
{
$(this).remove();
});
});
}
</script>
<head>
我可以这样做:
def signout(request):
logout(request)
return HttpResponseRedirect(reverse(index, "$(document).ready(function(){toast('test');});"))
答案 0 :(得分:2)
我建议改用Django消息 - https://docs.djangoproject.com/en/dev/ref/contrib/messages/。
您可以检查模板中是否填充了“消息”并显示吐司通知。
答案 1 :(得分:1)
将此添加到您的脚本代码中:
$(document).ready(function(){
toast("test");
});
答案 2 :(得分:0)
不幸的是,我不知道JQuery,所以这将是更多伪代码/原型-y,但这是最好的方法。 (JQuery用户,随意用实际的JQuery修复它)
在Logout链接上,添加一个对视图执行AJAX请求的事件处理程序:
$('a').click(function() {
Ajax.send('/path/to/logout/', {
onSuccess: function(response) {
toast(response.responseText, function() {
window.location = '/path/to/index/';
});
},
onFailure: function(response) {
toast(response.responseText);
}
});
})
请注意,我向toast()
添加了第二个参数。你想要改变干杯:
function toast(sMessage, action)
{
var container = $(document.createElement("div"));
container.addClass("toast");
var message = $(document.createElement("div"));
message.addClass("message");
message.text(sMessage);
message.appendTo(container);
container.appendTo(document.body);
container.delay(100).fadeIn("slow", function()
{
$(this).delay(2000).fadeOut("slow", function()
{
$(this).remove();
if (action) action();
});
});
}
最后,观点:
def signout(request):
if logout(request):
return HttpResponse('You have successfully logged out!')
else:
return HttpResponseBadRequest('There was an error logging out.')
答案 3 :(得分:0)
VIEW.PY
def signout(request):
logout(request)
messages.add_message(request, messages.INFO, 'Signout Successful.')
return HttpResponseRedirect(reverse(index))
的index.html
{% if messages %}
{% for message in messages %}
<script type="text/javascript">
$(document).ready(function(){toast("{{ message }}");});
</script>
{% endfor %}
{% endif %}