diff --git a/djangoql/admin.py b/djangoql/admin.py index 8838e65..60b9e02 100644 --- a/djangoql/admin.py +++ b/djangoql/admin.py @@ -6,6 +6,7 @@ from django.db import DataError, NotSupportedError from django.forms import Media from django.http import HttpResponse +from django.shortcuts import resolve_url from django.template.loader import render_to_string from django.views.generic import TemplateView @@ -112,6 +113,9 @@ def djangoql_error_message(self, exception): msg = text_type(exception) return render_to_string('djangoql/error_message.html', context={ 'error_message': msg, + 'djangoql_syntax_help_url': resolve_url( + f'{self.admin_site.name}:djangoql_syntax_help' + ), }) @property diff --git a/djangoql/templates/djangoql/error_message.html b/djangoql/templates/djangoql/error_message.html index 7395e81..efb0f3b 100644 --- a/djangoql/templates/djangoql/error_message.html +++ b/djangoql/templates/djangoql/error_message.html @@ -1,6 +1,6 @@
{{ error_message }} - + DjangoQL syntax help
diff --git a/test_project/core/tests/test_admin.py b/test_project/core/tests/test_admin.py index a3af7dd..6ed79e5 100644 --- a/test_project/core/tests/test_admin.py +++ b/test_project/core/tests/test_admin.py @@ -46,14 +46,17 @@ def test_introspection_suggestion_api_url(self): ) def test_djangoql_syntax_help(self): - url = reverse('admin:djangoql_syntax_help') - # unauthorized request should be redirected - response = self.client.get(url) - self.assertEqual(302, response.status_code) - self.assertTrue(self.client.login(**self.credentials)) - # authorized request should be served - response = self.client.get(url) - self.assertEqual(200, response.status_code) + for app in ['admin', 'zaibatsu']: + url = reverse(f'{app}:djangoql_syntax_help') + self.client.logout() + with self.subTest(app=app): + response = self.client.get(url) + # unauthorized request should be redirected + self.assertEqual(302, response.status_code) + self.assertTrue(self.client.login(**self.credentials)) + # authorized request should be served + response = self.client.get(url) + self.assertEqual(200, response.status_code) def test_suggestions(self): url = reverse('admin:core_book_djangoql_suggestions')