当我使用./manage.py runserver
在本地运行Django测试服务器时,会显示很多警告(DeprecationWarning,RemovedInDjango20Warning),即使默认情况下它们不应该存在(https://docs.djangoproject.com/en/2.2/releases/1.11/#deprecating-warnings-are-no-longer-loud-by-default)也是如此。
我已将此代码放入Django命令中:
import warnings
warnings.simplefilter("ignore", DeprecationWarning)
warnings.simplefilter("ignore", RemovedInDjango20Warning)
并且它在该命令上隐藏了警告,但是我不知道将它放在哪里,以便它全局隐藏所有警告(我已经尝试过在manage.py,settings.py,models.py,... )
我还尝试运行python -W ignore manage.py runserver
,该命令应该告诉python不要显示警告,但是它仍然显示所有警告。
警告看起来像这样:
/.../venv/lib64/python3.6/site-packages/review/templatetags/review_tags.py:11: RemovedInDjango20Warning: assignment_tag() is deprecated. Use simple_tag() instead @register.assignment_tag
或
/.../models/results.py: RemovedInDjango20Warning: on_delete will be a required arg for ForeignKey in Django 2.0. Set it to models.CASCADE on models and in existing migrations if you want to maintain the current default behavior
一种可能性是更新Django版本并进行警告建议的所有更改,但这太长了,我只想隐藏这些警告。