无法消除 django-cms 产生的警告

2024-03-02

我安装了 Django-cmsdjangocms-installer脚本,一切正常,除了我得到一堆RemovedInDjango18Warning每次我启动服务器,使用manage.py执行任何操作,甚至执行manage.py选项卡自动完成(最烦人)时,shell中都会出现警告!所以我想我会消除警告,使用warnings module:

# in manage.py, just after `import os; import sys`:
import warnings
warnings.filterwarnings("ignore")

我想更具体地了解沉默,但事实证明,即使这个简单的情况也没有执行任何操作,警告仍然会显示!我究竟做错了什么?!

警告:

/Users/fran/.virtualenvs/dkde2015/lib/python2.7/site-packages/cms/publisher/manager.py:5: RemovedInDjango18Warning: `PublisherManager.get_query_set` method should be renamed `get_queryset`.
  class PublisherManager(models.Manager):

/Users/fran/.virtualenvs/dkde2015/lib/python2.7/site-packages/cms/models/managers.py:15: RemovedInDjango18Warning: `PageManager.get_query_set` method should be renamed `get_queryset`.
  class PageManager(PublisherManager):

/Users/fran/.virtualenvs/dkde2015/lib/python2.7/site-packages/cms/admin/change_list.py:39: RemovedInDjango18Warning: `CMSChangeList.get_query_set` method should be renamed `get_queryset`.
  class CMSChangeList(ChangeList):

/Users/fran/.virtualenvs/dkde2015/lib/python2.7/site-packages/cms/admin/forms.py:340: RemovedInDjango18Warning: Creating a ModelForm without either the 'fields' attribute or the 'exclude' attribute is deprecated - form PagePermissionInlineAdminForm needs updating
  class PagePermissionInlineAdminForm(forms.ModelForm):

/Users/fran/.virtualenvs/dkde2015/lib/python2.7/site-packages/cms/admin/forms.py:442: RemovedInDjango18Warning: Creating a ModelForm without either the 'fields' attribute or the 'exclude' attribute is deprecated - form ViewRestrictionInlineAdminForm needs updating
  class ViewRestrictionInlineAdminForm(PagePermissionInlineAdminForm):

/Users/fran/.virtualenvs/dkde2015/lib/python2.7/site-packages/cms/admin/forms.py:491: RemovedInDjango18Warning: Creating a ModelForm without either the 'fields' attribute or the 'exclude' attribute is deprecated - form PageUserForm needs updating
  class PageUserForm(UserCreationForm, GenericCmsPermissionForm):

/Users/fran/.virtualenvs/dkde2015/lib/python2.7/site-packages/django/forms/widgets.py:143: RemovedInDjango18Warning: `PagePermissionInlineAdmin.queryset` method should be renamed `get_queryset`.
  .__new__(mcs, name, bases, attrs))

/Users/fran/.virtualenvs/dkde2015/lib/python2.7/site-packages/django/forms/widgets.py:143: RemovedInDjango18Warning: `ViewRestrictionInlineAdmin.queryset` method should be renamed `get_queryset`.
  .__new__(mcs, name, bases, attrs))

/Users/fran/.virtualenvs/dkde2015/lib/python2.7/site-packages/django/forms/widgets.py:143: RemovedInDjango18Warning: `PageUserAdmin.queryset` method should be renamed `get_queryset`.
  .__new__(mcs, name, bases, attrs))

解决这个问题的外科手术方法是创建一个日志过滤器这只会过滤掉明确指定要静音的警告。你知道:

错误永远不应该悄无声息地过去。
除非明确沉默。


考虑到这一点,这是我的过滤机械,全部都在settings.py(无论如何现在):

MY_IGNORED_WARNINGS = {
    'RemovedInDjango18Warning: `PublisherManager.get_query_set`',
    'RemovedInDjango18Warning: `PageManager.get_query_set`',
    'RemovedInDjango18Warning: `CMSChangeList.get_query_set`',
    'form PagePermissionInlineAdminForm needs updating',
    'form ViewRestrictionInlineAdminForm needs updating',
    'form PageUserForm needs updating',
    '/cms/admin/placeholderadmin.py:133: RemovedInDjango18Warning: Options.module_name has been deprecated',
    '/cms/admin/settingsadmin.py:28: RemovedInDjango18Warning: Options.module_name has been deprecated',
    '/cms/admin/pageadmin.py:111: RemovedInDjango18Warning: Options.module_name has been deprecated',
    'RemovedInDjango18Warning: `PagePermissionInlineAdmin.queryset',
    'RemovedInDjango18Warning: `ViewRestrictionInlineAdmin.queryset`',
    'RemovedInDjango18Warning: `PageUserAdmin.queryset`',

}

def filter_djangocms_warnings(record):
    for ignored in MY_IGNORED_WARNINGS:
        if ignored in record.args[0]:
            return False
    return True

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'filters': {
        'ignore_djangocms_warnings': {
            '()': 'django.utils.log.CallbackFilter',
            'callback': filter_djangocms_warnings,
        },
    },
    'loggers': {
        'py.warnings': {
            'handlers': ['console', ],
            'filters': ['ignore_djangocms_warnings', ],
        }
    },
}

我想它可以进一步完善......有什么想法吗?


何必呢?

其一,我现在可以(再次)使用Django bash 自动完成 https://github.com/django/django/blob/master/extras/django_bash_completion每次我按 [tab] 时,都不会出现一堆警告回响。

另外,现在我没有来自 DjangoCMS 的 20 多个警告,我实际上可以看到来自我自己的代码的警告并修复它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法消除 django-cms 产生的警告 的相关文章

随机推荐

  • Linux - 修改文件修改/访问/更改时间[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我读了一篇关于新隐写方法的文章 时间在我这边 文件系统元数据中的隐写术 http www sciencedirect com scienc
  • 从 mysqldb 查询获取原始十进制值

    我正在使用 MySQLdb 包在 python 中执行 mysql 查询 代码看起来像这样 c db cursor c execute select from table output for row in c output append
  • Pandas - 查找没有 Nan 值的最长拉伸

    我有一个 pandas 数据框 df 其示例如下 time x 0 1 1 1 2 Nan 2 3 3 3 4 Nan 4 5 8 5 6 7 6 7 5 7 8 Nan 真正的框架要大得多 我试图找到 x 系列中最长的非 NaN 值 并打
  • 将可排序表与复选框总和输出相结合

    我当前的代码有一个复选框求和函数 它从数据库中获取值 我还尝试将另一个 Javascript 代码应用到我的表中 以允许我对行中的数据进行排序 例如 对行进行排序后 将所有 5 个 ACER 资产显示在顶部 我想勾选前 5 个显示的 ACE
  • 在 Oracle PL SQL 中检索 xml 元素的值

    有谁知道如何检索的值
  • Ruby on Rails 回调,:before_save 和 :before_create 之间有什么区别?

    你能详细解释一下什么是 before save and before createRuby on Rails 回调是什么 它们与 Rails 验证有什么关系 验证是否发生在 before save or before create 在 Ra
  • 从注入的 DLL 中挂钩 DirectX EndScene

    我想绕道EndScene从任意 DirectX 9 应用程序创建一个小的覆盖层 例如 您可以使用 FRAPS 的帧计数器叠加层 该叠加层在激活时会显示在游戏中 我知道以下方法可以做到这一点 创建一个新的d3d9 dll 然后将其复制到游戏路
  • 如何在具有多个预测变量的混合模型中绘制随机截距和斜率?

    当混合模型具有多个预测变量时 是否可以绘制其随机截距或斜率 对于一个预测器 我会这样做 generate one response two predictors and one factor random effect resp lt ru
  • 在 Emacs 中禁用鼠标滚动

    我在互联网上找到的所有内容都告诉我 emacs 默认情况下禁用鼠标滚动 但我的鼠标非常热情 当我的拇指太靠近笔记本电脑上的触控板时 就会滚动到它的核心内容 我有not允许这样做 这是我的 emacs 来证明这一点 Line by line
  • 如何从字符串中删除 unicode ? [复制]

    这个问题在这里已经有答案了 我用过这个方法 https stackoverflow com questions 39993715 how to remove unicode u00a6 from string 但它不起作用 我的代码包含如下
  • 在 Golang 中将 Value 类型转换为 Map?

    我从 reflect 包中的函数调用中获取此返回值 lt map string string Value gt 想知道我是否可以访问返回值中的实际地图 如果可以 如何访问 EDIT 这就是我进行返回 Value 对象的调用的地方 它返回 l
  • 教授 C 语言时,在指针之前或之后教授数组哪个更好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 对于那些有课程开发经验的人来说 关于数组的最佳策略是什么 我见过一些学校在教授变量和控制结构之后教授数组 甚至通常在教授函数之前 这允许教授一些
  • 如何使用 messages.properties 文件中的参数?

    In 这个问题 https stackoverflow com q 5600055 456218 它指出 可能有类似的情况 message myMessage This message is for 0 in 1 但我不知道如何向其传递参数
  • 如何让Xcode找到FacebookSDK.h文件?

    它显示 未找到 FacebookSDK FacebookSDK h 文件 但我可以跳转到 import 上的定义 它会将我带到该文件 一旦我添加了 import 它现在就知道 FBFriendPickerDelegate 是什么 并且该行现
  • 有没有如下图移动光标的快捷键?

    我用的是笔记本 没有鼠标 打字后prop并按tab Visual Studio会自动给我一个属性模板 紧迫tab将在之间移动光标type and propertyname占位符 我想在完成属性模板后将光标移至新行 有没有捷径可以做到这一点
  • 在谷歌静态地图上使用自定义图像标记?

    如何在谷歌静态地图上有自定义图像标记 我需要网址格式 这是我尝试过的 但它有默认的标记图像 这就是你想要的 对于自定义图像 请将icon url之后的markers Format icon url lat lng Example icon
  • 快速编译器的奇怪行为

    我在 swift 中有以下功能 func f gt Int let a String a let b a unicodeScalars println b b startIndex value return b b startIndex v
  • 消除小于某个指定数量阈值的连接像素数量

    我有一些数据 尺寸是249X250 我使用以下代码来绘制数据 import numpy as np import pandas as pd import matplotlib pyplot as pl data pd read excel
  • 如何从托管 bean 内部获取消息包字符串?

    我希望能够从 JSF 2 托管 bean 内部的消息包中检索字符串 这将在字符串用作摘要或详细信息参数的情况下完成 FacesMessage或者作为抛出异常中的消息 我想确保托管 bean 为用户的区域设置加载正确的消息包 我不清楚如何使用
  • 无法消除 django-cms 产生的警告

    我安装了 Django cmsdjangocms installer脚本 一切正常 除了我得到一堆RemovedInDjango18Warning每次我启动服务器 使用manage py执行任何操作 甚至执行manage py选项卡自动完成