2013-03-03 23 views
5

benim Django proje üzerinde geliştirirken yazan bir DatabaseError alıyorum:Django - Django hata sayfasında DatabaseError "mevcut işlem iptal edildi" hata ayıklama bilgisi nasıl alınır?

akım işlem kesilir

, işlem bloğunun sonuna kadar ihmal komutlar

Ben orada çünkü bu olur biliyor Geri alma olmadan hatalı PostgreSQL işlemi ve bu kötü işlemdeki hata PostgreSQL hata günlüğünde bulunabilir. Ancak, bu hata Django hata sayfasında gösterilecekse daha uygun olacağını düşünüyorum. Sonra sorunun ne olduğunu doğrudan görebilirsiniz.

Bu PostgreSQL hatalarını Django hata sayfasında almak mümkün müdür? Ve eğer öyleyse, nasıl?

+1

Django hata ayıklama araç çubuğuna baktınız mı? - https://github.com/robhudson/django-debug-toolbar/commits/master/ –

+0

Herhangi bir araştırma yaptınız mı? Bir şey denedin mi? Django belgelerini kontrol ettin mi? Çabalarını göster. –

+0

@BelowtheRadar Evet. Bu sorunun yaklaşık bir yıldır olduğunu ve şimdiden yanıtlandığını biliyor muydunuz? – rednaw

cevap

2

aşağı istisna asıl mesele ayrıntılara almak isterseniz, o zaman görünümü işlemeyi sarın ve işlenmeyen django.db.DatabaseError yakalamak ve geliştirme sunucunun bir hata ayıklama oturumunda istisna incelemek için özel bir middleware class yazabilir konsol:

from django.db import DatabaseError 

class DatabaseErrorMiddleware(object): 
    def process_view(self, request, view, args, kwargs): 
     try: 
      view(request, *args, **kwargs) 
     except DatabaseError as err: 
      import pdb; pdb.set_trace() 
      # You can now fully inspect the `e` exception object and it's context 

Bu istisnalar huyludur ve genellikle zamanından önce sona erer Müşteriniz bir yanıt geri dönebilirler uygulamadan önce bağlantıyı iptal eder, hepsi olmayabilir ama bir iş parçacığının istek-yanıt, geliştirme sırasında oldukça sık, akış zaman meydana onun.

İlgili konular