【问题标题】:Django 1.7 Admin - How to hide timezone warning?Django 1.7 Admin - 如何隐藏时区警告?
【发布时间】:2014-12-19 16:00:06
【问题描述】:

我最近升级到 Django 1.7,当我在管理界面中查看本地时区与服务器时区时,我开始在 DateTime/Time 字段上看到这些时区警告。我绝对理解他们为什么要添加这个,它消除了很多歧义,尤其是使用 DateTime,但我有一个 TimeField,它实际上存储了与登录用户的时区相对应的时间(保存在他们的用户配置文件中),所以警告消息在这种情况下实际上是误导。我还看到确实是 Django 1.7 添加了这个功能(参见https://github.com/django/django/blob/master/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js#L63https://docs.djangoproject.com/en/dev/releases/1.7/#admin-shortcuts-support-time-zones)。

我的问题是如何关闭这些消息的显示?如果是这样,有没有办法可以指定如何在每个字段的基础上隐藏警告?

【问题讨论】:

    标签: django django-admin django-1.7


    【解决方案1】:

    我将此代码添加到一个 js 文件中,该文件加载到我的应用程序的所有页面中。

    jQuery(document).ready(function($) {
    
       // override django 1.7 timezone warning
       DateTimeShortcuts.addTimezoneWarning = function(){return false;};
    });
    

    【讨论】:

      【解决方案2】:

      如果您将 Media 类添加到您的 ModelAdmin 中,您可以包含一个 CSS 文件,使这些警告消失。

      # admin.py
      class MyModelAdmin(ModelAdmin):
          model = MyModel
          
          class Media(object):
              css = {'all': ('no-more-warnings.css', )}
      

      创建的 CSS 文件应包含以下规则:

      /* no-more-warnings.css */
      .timezonewarning {
        display: none;
      }
      

      【讨论】:

      • 我正在使用 Django 2.2,不幸的是这个解决方案不再有效。 :(
      • @AdamY 在 Django 3.2 上对我来说很好用:O
      • 我最初的评论误解了答案。这行得通。非常感谢@ruohola 向我解释。我假设 no-more-warnings.css 是 Django 管理员的一部分,设置 Media 类属性只是启用它。事实并非如此。必须创建一个名为 no-more-warnings.css 的文件并将建议的 CSS 放入其中。然后,Media 类将加载该 CSS 文件作为模型管理设置的一部分。
      猜你喜欢
      • 1970-01-01
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多