Ausführliche Verwarnungswarnungen in Django

8

Nach dem Upgrade von django 1.3 auf django 1.5 habe ich diese DeprecationWarnings während des Testlaufs gesehen:

  

pfad_zu_virtualenv / lib / python2.6 / site-packages / django / http / request.py: 193:   DeprecationWarning: HttpRequest.raw_post_data ist veraltet. Benutzen   HttpRequest.body statt.

Ich habe im Projekt nach raw_post_data gesucht und nichts gefunden. Es wurde also nicht direkt im Projekt verwendet. Dann habe ich INSTALLED_APPS manuell durchlaufen und festgestellt, dass raven modul immer noch raw_post_data verwendet und es die Ursache war, aber ..

Ist es möglich, die Ursache von DeprecationWarning während des Testlaufs zu sehen? Wie machen Sie diese Warnungen ausführlicher?

    
alecxe 05.05.2013, 22:01
quelle

2 Antworten

5

Dies stammt aus einer ähnlichen Frage .

Sie können die Warnmodule verwenden, um einen Fehler für DeprecationWarning auszulösen.

Fügen Sie vorübergehend das folgende Snippet an der Spitze des urls.py Ihres Projekts hinzu:

%Vor%

Der DeprecationWarning wird nun einen Fehler auslösen, wenn Sie also debug=True haben, erhalten Sie die bekannte gelbe Django-Fehlerseite mit dem vollständigen Traceback.

    
SunnySydeUp 08.05.2013, 00:19
quelle
21

Sie können das Python-Warnsteuerelement über die Befehlszeilenoption -W festlegen eine Ausnahme mit einem traceback auf DeprecationWarning wie für Fehler anstelle von normalen einfachen Warnung einmal. Jede spezifische Warnung kann durch eine Nachricht, eine Kategorie, ein Modul, eine Zeile oder durch eine Kombination von ihnen gefiltert werden.

Beispiele:

%Vor%

Eine Feinfilterung ist nützlich, wenn Sie alle Warnungen eines Typs zusammen durch Stapelbearbeitung in vielen Dateien eines großen Projekts beheben möchten.

Python 2.7 und höher ignorieren DeprecationWarning normalerweise, wenn sie nicht erneut aktiviert werden, z. von -Wd -Option oder von der Umgebungsvariablen export PYTHONWARNINGS="d" . Das kann bei Entwicklungsmaschinen nützlich sein, nicht aber bei der Produktion.

    
hynekcer 09.05.2013 08:14
quelle