Jeśli nie chcesz używać wartownika można użyć tego prostego middleware do attache przez użytkownika-Infos do poczty błędzie:
# 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
można po prostu umieścić tę klasę w pliku * .py nigdzie poniżej twojego projektu Django i dodaj odniesienie do MIDDLEWARE_CLASSES
. To znaczy. jeśli umieścisz go w pliku "middleware" w katalogu głównym projektu (gdzie znajduje się plik settings.py), po prostu dodaj middleware.ExceptionUserInfoMiddleware
.
To wygląda na proste. Więc wszystko, co robisz, to dodawanie tych dwóch wartości do rzeczy, które Django ma w e-mailu zamieścić? Następnie Django wysyła wiadomość e-mail w normalny sposób? – Greg
Jaki plik mam umieścić w tej klasie? A potem po prostu go zaimportuję i odwołuję się do niego z settings.py? – Greg
@Greg Zaktualizowałem odpowiedź. –