cevap

14

Hata postaya kullanıcı Infos olarak iliştirilmiş için bu basit ortakatmanını nöbet kullanmak istemiyorsanız:

# source: https://gist.github.com/646372 
class ExceptionUserInfoMiddleware(object): 
    """ 
    Adds user details to request context on receiving an exception, so that they show up in the error emails. 

    Add to settings.MIDDLEWARE_CLASSES and keep it outermost(i.e. on top if possible). This allows 
    it to catch exceptions in other middlewares as well. 
    """ 

    def process_exception(self, request, exception): 
     """ 
     Process the exception. 

     :Parameters: 
      - `request`: request that caused the exception 
      - `exception`: actual exception being raised 
     """ 

     try: 
      if request.user.is_authenticated(): 
       request.META['USERNAME'] = str(request.user.username) 
       request.META['USER_EMAIL'] = str(request.user.email) 
     except: 
      pass 

Sadece yerde bir * .py dosyasında bu sınıf koyabilirsiniz Django projenizin altında ve MIDDLEWARE_CLASSES'a bir başvuru ekleyin. Yani Eğer proje kökünde (settings.py'nin olduğu) bir "middleware" dosyasına koyarsanız, sadece middleware.ExceptionUserInfoMiddleware'u eklersiniz.

+0

Bu basit görünüyor. Yani bu tek şey, bu iki değeri Django'nun e-postaya ekleyeceği şeylere eklemektir. Sonra Django e-postayı normal olarak gönderir mi? – Greg

+0

Bu dersi hangi dosyaya koyardım? Ve sonra onu aldım ve settings.py'den referans alıyorum? – Greg

+0

@Greg Cevabı güncelledim. –