Quickfix
import sys
sonra şu satırları ekleyin, bunu susturmak için:
# ...
import sys
if not sys.warnoptions:
sys.warnoptions += [None]
# ...
ayrıca your_project/wsgi.py
güncellemek, senin WSGI sunucusuna (yani Apache) onu susturmak istiyorsanız ve import os
sonra aşağıdaki satırları ekleyin:
# ...
import os
import sys
if not sys.warnoptions:
sys.warnoptions += [None]
# ...
Açıklama
bu işleri nedeni
django.utils.log.configure_logging()
bunu nasıl işleyeceğini taşımaktadır
:
O kasten erken başardık önce hataları yayılan edildi açıklıyor
django.setup()
parçası olarak önyükleme işleminde, denir
def configure_logging(logging_config, logging_settings):
if not sys.warnoptions:
# Route warnings through python logging
logging.captureWarnings(True)
# RemovedInNextVersionWarning is a subclass of DeprecationWarning which
# is hidden by default, hence we force the "default" behavior
warnings.simplefilter("default", RemovedInNextVersionWarning)
# ...
onları yığından aşağı doğru susturabilirsiniz. sys.warnoptions
'a yeni bir öğe eklemek, mantığı atlayarak True
değerini değerlendirmek üzere zorlar. Bu, warnings
modülü tarafından yüklendiğinde only used during python startup olduğundan zararsızdır.
RemovedInNextVersionWarning
sadece RemovedInDjango18Warning
in Django 1.7 için bir takma addır. RemovedInDjango19Warning
in 1.8 olarak ayarlanmıştır ve bu nedenle gelecek sürümler için bu kod DeprecationWarning
türünün gelecekteki kanıtı olmalıdır.
Komut satırı yöntemleri sys.warnoptions
normalde piton çağrılırken -W
argument dayalı piton başlatma sırasında ayarlanır Not olduğunu
. Bu nedenle, dev sunucusunu kullandığınızda yalnızca uyarıları susturmanın basit bir yolu
python -W123 manage.py runserver
'dur. Bu, dosyaların değiştirilmesini gerektirmez, ancak
123
yalnızca bir yer tutucu ve geçerli bir uyarı eylemi olmadığı için başlangıçta tek bir zararsız uyarı ile sonuçlanır. Bu
RemovedInDjango18Warning
olmayan ilgi muhtemelen de dahil,
TÜM
DeprecationWarning
s görmezden olsa
başka yolu da, python -Wi::DeprecationWarning manage.py runserver
olduğunu.
@Andy. Bence bu farklı bir soru. Warnings.filterwarnings() işlevini nasıl kullanacağımı biliyorum. Sorunum zamanlama: İçe aktarma sırasında bir çok mesaj yayılıyor. Ben warnings.filterwarnings() yeterince erken – guettli
aramak nasıl bilmiyorum [kendi filtrenizi yazmak] (https://docs.djangoproject.com/en/1.Settings.py içinde 8/topic/logging/# id5)? – danihp
@danhip AFAIK, settings.py yüklenmeden önce uyarılar yayılır. Settings.py dosyasındaki bir filtre çok geç olurdu. – guettli