django-ninja icon indicating copy to clipboard operation
django-ninja copied to clipboard

Handling errors

Open chrisbodon opened this issue 2 years ago • 6 comments

I´m trying to use custom templates for errors. I followed the handling errors docs but it doesnt work. Do I need to implement something more? I´m using Jinja2 for the template system.

front = NinjaAPI(urls_namespace='front')

env = environment(loader=PackageLoader("front"), autoescape=select_autoescape())

@front.exception_handler(django.http.Http404)
def validation_errors(request, exc):
	template = env.get_template("404.html")
	data = {
		"request": request,
	}
	return HttpResponse(template.render(data))


@front.exception_handler(ninja.errors.HttpError)
def validation_errors(request, exc):
	template = env.get_template("500.html")
	data = {
		"request": request,
	}
	return HttpResponse(template.render(data))`

chrisbodon avatar Aug 31 '22 18:08 chrisbodon

Hi @chrisbodon could you define "does not work" ? does it give some error / what do you see ?

vitalik avatar Aug 31 '22 19:08 vitalik

It shows the default message "A server error occurred. Please contact the administrator."

chrisbodon avatar Sep 01 '22 09:09 chrisbodon

@chrisbodon are you running with ./manage.py runserver ? Do you have DEUBG=True in settings ?

vitalik avatar Sep 02 '22 06:09 vitalik

I am running with ./manage.py runserver --insecure, and this is my DEBUG code at the moment:

DEBUG = False

ALLOWED_HOSTS = ['127.0.0.1', 'localhost']

chrisbodon avatar Sep 02 '22 10:09 chrisbodon

@chrisbodon set DEBUG = True and you should see more useful information ;)

vitalik avatar Sep 02 '22 11:09 vitalik

I did, but than I get the 404 standard Django page, and not my custom version

chrisbodon avatar Sep 05 '22 10:09 chrisbodon