Tutorial :django media url is not resolved in 500 internal server error template



Question:

I'm using a 500.html template for my app, which is an identical copy of the 404.html with some minor text changes.

Interestingly the {{ media_url }} context variable will not be resolved by the server if the 500.html is presented (e.g. when I force an internal server error), resulting in a page without any css loaded.

An easy way to circumvent this would be to hardcode the links to the css, but I m just curious why the media_url is not resolved. Probably it is because the server encounters a internal server error and that leads to context variables not any more available!?


Solution:1

The 500 error handler doesn't pass a RequestContext to the template, it just uses a Context. As you may know, MEDIA_URL is added in a context processor, which are only included when you use a RequestContext.

You can set your own 500 handler and pass a RequestContext if you want.

Here's a link to the django docs on making a custom handler500.


Solution:2

The django docs recommend that you do not use a template for your 500.html file because there is no way of dealing with an error in the rendering of that template.

Just stick with a straight HTML file informing the user that there has been an error. That's all they need to know.

You can look at the server logs for what you need to know.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »