Merge pull request #1580 from ianawilson/ticket_16502

Fixed #16502 -- Fixed a TemplateDoesNotExist error that should be an ImproperlyConfigured.

Assistance on the patch from #jambronrose.
This commit is contained in:
Russell Keith-Magee 2013-09-06 15:31:25 -07:00
commit 9b2dc12b83
3 changed files with 47 additions and 21 deletions

View File

@ -159,6 +159,12 @@ class SingleObjectTemplateResponseMixin(TemplateResponseMixin):
self.model._meta.model_name, self.model._meta.model_name,
self.template_name_suffix self.template_name_suffix
)) ))
# If we still haven't managed to find any template names, we should
# re-raise the ImproperlyConfigured to alert the user.
if not names:
raise
return names return names

View File

@ -468,3 +468,15 @@ class UseMultipleObjectMixinTest(unittest.TestCase):
# Overwrite the view's queryset with queryset from kwarg # Overwrite the view's queryset with queryset from kwarg
context = test_view.get_context_data(object_list=queryset) context = test_view.get_context_data(object_list=queryset)
self.assertEqual(context['object_list'], queryset) self.assertEqual(context['object_list'], queryset)
class SingleObjectTemplateResponseMixinTest(unittest.TestCase):
def test_template_mixin_without_template(self):
"""
We want to makes sure that if you use a template mixin, but forget the
template, it still tells you it's ImproperlyConfigured instead of
TemplateDoesNotExist.
"""
view = views.TemplateResponseWithoutTemplate()
self.assertRaises(ImproperlyConfigured, view.get_template_names)

View File

@ -92,6 +92,14 @@ class NaiveAuthorCreate(generic.CreateView):
fields = '__all__' fields = '__all__'
class TemplateResponseWithoutTemplate(generic.detail.SingleObjectTemplateResponseMixin, generic.View):
# we don't define the usual template_name here
def __init__(self):
# Dummy object, but attr is required by get_template_name()
self.object = None
class AuthorCreate(generic.CreateView): class AuthorCreate(generic.CreateView):
model = Author model = Author
success_url = '/list/authors/' success_url = '/list/authors/'