2012-12-18 44 views
1

在我的应用程序中,每当一个问题被删除时,它显示一个django消息,该问题被删除。 相关的代码是:根据需要获取显示增加Django消息的显示时间

from django.contrib import messages 

msg= _('Question is deleted') 
messages.info(request, msg) 

该消息,但是,我想显示消息,持续更长的时间说最小10秒。或直到用户点击它。

在django文档中看到了邮件过期,但仍然无法弄清楚,而且我没有任何可以设置为false的邮件存储。

帮助赞赏:)

+1

这是JavaScript的领土可能,显示在显示信息模板代码。 – soulseekah

+1

但是,这并不是刚刚输入到模板中的信息,而是由您的模板决定如何处理它以及在何处显示它(以及如果您使用Javascript代码来刷新信息多长时间)。上面的代码只是分配数据并将其传递到您的模板中,然后将整个事情交给您的浏览器进行呈现? – soulseekah

回答

7

你想要做的事情是javascript域。下面的代码将显示您的消息10秒,或者您可以手动关闭它。在模板中,你可以这样做:

{% for message in messages %} 
    <div class="message"> 
     {{ message }} 
     <a href="#" class="del-msg">&times;</a> 
    </div> 
{% endfor %} 

而且在javascript:

<script> 
    $(document).ready(function() { 
     // messages timeout for 10 sec 
     setTimeout(function() { 
      $('.message').fadeOut('slow'); 
     }, 10000); // <-- time in milliseconds, 1000 = 1 sec 

     // delete message 
     $('.del-msg').live('click',function(){ 
      $('.del-msg').parent().attr('style', 'display:none;'); 
     }) 
    }); 
</script> 
+1

答案是正确的,因为当我设置一个低至10或100的限制时,它可以工作,但是当我将限制设置为10000时,即显示10秒时,它不起作用。我相信这10秒是比django消息所允许的默认时间长。好心提醒 :) –