【问题标题】:Increase displaying time of django messages增加 django 消息的显示时间
【发布时间】:2012-12-05 15:22:18
【问题描述】:

在我的应用程序中,每当删除问题时,它都会显示一条 django 消息,表明问题已被删除。 相关代码为:

from django.contrib import messages

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

消息会根据需要显示,但我希望显示消息持续更长时间至少 10 秒。或者直到用户点击它。

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

帮助表示赞赏:)

【问题讨论】:

  • 这可能是 JavaScript 领域,在显示消息的位置显示您的模板代码。
  • 但是消息不是刚刚输入到您的模板中,而是由您的模板决定如何处理它,在哪里显示它(以及如果您有 Javascript 代码来闪烁消息的时间)。上面的代码只是分配数据并将其传递到您的模板中,然后将整个事情交给您的浏览器,它会在哪里呈现它?

标签: javascript django


【解决方案1】:

你想做的是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>

【讨论】:

  • 答案是正确的,因为当我将限制设置为 10 或 100 时它可以工作,但是当我将限制设置为 10000 时,即显示 10 秒它不起作用。我相信那是因为 10 秒超过了 django 消息允许的默认时间。请建议:)
猜你喜欢
  • 2012-01-09
  • 1970-01-01
  • 2016-12-24
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 1970-01-01
  • 2020-06-05
相关资源
最近更新 更多