From 903023665223bca3e63aa0da4ef6c16adff47950 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Wed, 31 May 2006 15:08:06 +0000 Subject: [PATCH] Fixed #2000 -- Added 'mimetype' parameter to generic views. Thanks, Ian Holsman git-svn-id: http://code.djangoproject.com/svn/django/trunk@3022 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/views/generic/date_based.py | 26 ++++++++++++++------------ django/views/generic/list_detail.py | 10 ++++++---- docs/generic_views.txt | 24 ++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 16 deletions(-) diff --git a/django/views/generic/date_based.py b/django/views/generic/date_based.py index 1a6cbc8369..c505530dfb 100644 --- a/django/views/generic/date_based.py +++ b/django/views/generic/date_based.py @@ -6,7 +6,8 @@ import datetime, time def archive_index(request, queryset, date_field, num_latest=15, template_name=None, template_loader=loader, - extra_context={}, allow_empty=False, context_processors=None): + extra_context={}, allow_empty=False, context_processors=None, + mimetype=None): """ Generic top-level archive of date-based objects. @@ -40,11 +41,11 @@ def archive_index(request, queryset, date_field, num_latest=15, c[key] = value() else: c[key] = value - return HttpResponse(t.render(c)) + return HttpResponse(t.render(c), mimetype=mimetype) def archive_year(request, year, queryset, date_field, template_name=None, template_loader=loader, extra_context={}, allow_empty=False, - context_processors=None): + context_processors=None, mimetype=None): """ Generic yearly archive view. @@ -78,12 +79,12 @@ def archive_year(request, year, queryset, date_field, template_name=None, c[key] = value() else: c[key] = value - return HttpResponse(t.render(c)) + return HttpResponse(t.render(c), mimetype=mimetype) def archive_month(request, year, month, queryset, date_field, month_format='%b', template_name=None, template_loader=loader, extra_context={}, allow_empty=False, context_processors=None, - template_object_name='object'): + template_object_name='object', mimetype=None): """ Generic monthly archive view. @@ -134,12 +135,12 @@ def archive_month(request, year, month, queryset, date_field, c[key] = value() else: c[key] = value - return HttpResponse(t.render(c)) + return HttpResponse(t.render(c), mimetype=mimetype) def archive_week(request, year, week, queryset, date_field, template_name=None, template_loader=loader, extra_context={}, allow_empty=True, context_processors=None, - template_object_name='object'): + template_object_name='object', mimetype=None): """ Generic weekly archive view. @@ -181,12 +182,13 @@ def archive_week(request, year, week, queryset, date_field, c[key] = value() else: c[key] = value - return HttpResponse(t.render(c)) + return HttpResponse(t.render(c), mimetype=mimetype) def archive_day(request, year, month, day, queryset, date_field, month_format='%b', day_format='%d', template_name=None, template_loader=loader, extra_context={}, allow_empty=False, - context_processors=None, template_object_name='object'): + context_processors=None, template_object_name='object', + mimetype=None): """ Generic daily archive view. @@ -233,7 +235,7 @@ def archive_day(request, year, month, day, queryset, date_field, c[key] = value() else: c[key] = value - return HttpResponse(t.render(c)) + return HttpResponse(t.render(c), mimetype=mimetype) def archive_today(request, **kwargs): """ @@ -251,7 +253,7 @@ def object_detail(request, year, month, day, queryset, date_field, month_format='%b', day_format='%d', object_id=None, slug=None, slug_field=None, template_name=None, template_name_field=None, template_loader=loader, extra_context={}, context_processors=None, - template_object_name='object'): + template_object_name='object', mimetype=None): """ Generic detail view from year/month/day/slug or year/month/day/id structure. @@ -300,6 +302,6 @@ def object_detail(request, year, month, day, queryset, date_field, c[key] = value() else: c[key] = value - response = HttpResponse(t.render(c)) + response = HttpResponse(t.render(c), mimetype=mimetype) populate_xheaders(request, response, model, getattr(obj, obj._meta.pk.name)) return response diff --git a/django/views/generic/list_detail.py b/django/views/generic/list_detail.py index 7d254c08da..77b97ca711 100644 --- a/django/views/generic/list_detail.py +++ b/django/views/generic/list_detail.py @@ -6,7 +6,8 @@ from django.core.exceptions import ObjectDoesNotExist def object_list(request, queryset, paginate_by=None, allow_empty=False, template_name=None, template_loader=loader, - extra_context={}, context_processors=None, template_object_name='object'): + extra_context={}, context_processors=None, template_object_name='object', + mimetype=None): """ Generic list of objects. @@ -73,12 +74,13 @@ def object_list(request, queryset, paginate_by=None, allow_empty=False, model = queryset.model template_name = "%s/%s_list.html" % (model._meta.app_label, model._meta.object_name.lower()) t = template_loader.get_template(template_name) - return HttpResponse(t.render(c)) + return HttpResponse(t.render(c), mimetype=mimetype) def object_detail(request, queryset, object_id=None, slug=None, slug_field=None, template_name=None, template_name_field=None, template_loader=loader, extra_context={}, - context_processors=None, template_object_name='object'): + context_processors=None, template_object_name='object', + mimetype=None): """ Generic list of objects. @@ -113,6 +115,6 @@ def object_detail(request, queryset, object_id=None, slug=None, c[key] = value() else: c[key] = value - response = HttpResponse(t.render(c)) + response = HttpResponse(t.render(c), mimetype=mimetype) populate_xheaders(request, response, model, getattr(obj, obj._meta.pk.name)) return response diff --git a/docs/generic_views.txt b/docs/generic_views.txt index 5b978af1de..166ad8347d 100644 --- a/docs/generic_views.txt +++ b/docs/generic_views.txt @@ -182,6 +182,9 @@ a date in the *future* are not included. * ``context_processors``: A list of template-context processors to apply to the view's template. See the `RequestContext docs`_. + * ``mimetype``: The MIME type to use for the resulting document. Defaults + to the value of the ``DEFAULT_MIME_TYPE`` setting. + **Template name:** If ``template_name`` isn't specified, this view will use the template @@ -247,6 +250,9 @@ with a date in the *future* are not displayed. * ``context_processors``: A list of template-context processors to apply to the view's template. See the `RequestContext docs`_. + * ``mimetype``: The MIME type to use for the resulting document. Defaults + to the value of the ``DEFAULT_MIME_TYPE`` setting. + **Template name:** If ``template_name`` isn't specified, this view will use the template @@ -314,6 +320,9 @@ date in the *future* are not displayed. view will append ``'_list'`` to the value of this parameter in determining the variable's name. + * ``mimetype``: The MIME type to use for the resulting document. Defaults + to the value of the ``DEFAULT_MIME_TYPE`` setting. + **Template name:** If ``template_name`` isn't specified, this view will use the template @@ -387,6 +396,9 @@ in the *future* are not displayed. view will append ``'_list'`` to the value of this parameter in determining the variable's name. + * ``mimetype``: The MIME type to use for the resulting document. Defaults + to the value of the ``DEFAULT_MIME_TYPE`` setting. + **Template name:** If ``template_name`` isn't specified, this view will use the template @@ -463,6 +475,9 @@ a 404 error, regardless of whether any objects exist for future days. view will append ``'_list'`` to the value of this parameter in determining the variable's name. + * ``mimetype``: The MIME type to use for the resulting document. Defaults + to the value of the ``DEFAULT_MIME_TYPE`` setting. + **Template name:** If ``template_name`` isn't specified, this view will use the template @@ -563,6 +578,9 @@ A page representing an individual object. * ``template_object_name``: Designates the name of the template variable to use in the template context. By default, this is ``'object'``. + * ``mimetype``: The MIME type to use for the resulting document. Defaults + to the value of the ``DEFAULT_MIME_TYPE`` setting. + **Template name:** If ``template_name`` isn't specified, this view will use the template @@ -627,6 +645,9 @@ A page representing a list of objects. view will append ``'_list'`` to the value of this parameter in determining the variable's name. + * ``mimetype``: The MIME type to use for the resulting document. Defaults + to the value of the ``DEFAULT_MIME_TYPE`` setting. + **Template name:** If ``template_name`` isn't specified, this view will use the template @@ -717,6 +738,9 @@ A page representing an individual object. * ``template_object_name``: Designates the name of the template variable to use in the template context. By default, this is ``'object'``. + * ``mimetype``: The MIME type to use for the resulting document. Defaults + to the value of the ``DEFAULT_MIME_TYPE`` setting. + **Template name:** If ``template_name`` isn't specified, this view will use the template