5👍
When using manage.py shell
I get an uncaught exception when manually creating a FollowTable from your example. However, uncaught exceptions during a request don’t show up in the terminal (other than showing that 500 was returned), instead they are shown in the browser. If you’re using JavaScript to make requests you might want to look in firebug/chrome developer tools to see if it’s returning a traceback.
Looks like someone else has answered how to get tracebacks to show in the console:
https://stackoverflow.com/a/5886462/725359
Seemed to work for me. I did the following:
- Added the
ExceptionLoggingMiddleware
class tomy_app/__init__.py
- Added
'my_app.ExceptionLoggingMiddleware'
toMIDDLEWARE_CLASSES
insettings.py
- Restarted the development server
7👍
Yes, errors should never fail silently
Yes, I think like you: errors should never fail silently
Built in signals don’t fail silently
Django’s built in signals don’t fail silently because they use send()
Only send_robust()
ignores exceptions
Docs from send_robust()
send_robust() catches all errors derived from Python’s Exception class, and ensures all receivers are notified of the signal. If an error occurs, the error instance is returned in the tuple pair for the receiver that raised the error.
Conclusion
Since django doesn’t use send_robust()
please investigate where it gets called. I guess it is in your source code, or in the code of a third party app.
- [Django]-How do I use allow_tags in django 2.0 admin?
- [Django]-Can I access constants in settings.py from templates in Django?
- [Django]-Django Call Class based view from another class based view