Fixed #16175 -- Modified the sitemaps views to return TemplateResponse instances for easier customization. Thanks, mat.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16476 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
60f0421ed3
commit
54552ee29f
|
@ -1,9 +1,10 @@
|
||||||
from django.http import HttpResponse, Http404
|
|
||||||
from django.template import loader
|
|
||||||
from django.contrib.sites.models import get_current_site
|
|
||||||
from django.core import urlresolvers
|
from django.core import urlresolvers
|
||||||
from django.utils.encoding import smart_str
|
|
||||||
from django.core.paginator import EmptyPage, PageNotAnInteger
|
from django.core.paginator import EmptyPage, PageNotAnInteger
|
||||||
|
from django.http import HttpResponse, Http404
|
||||||
|
from django.template.response import TemplateResponse
|
||||||
|
from django.utils.encoding import smart_str
|
||||||
|
|
||||||
|
from django.contrib.sites.models import get_current_site
|
||||||
|
|
||||||
def index(request, sitemaps,
|
def index(request, sitemaps,
|
||||||
template_name='sitemap_index.xml', mimetype='application/xml'):
|
template_name='sitemap_index.xml', mimetype='application/xml'):
|
||||||
|
@ -21,8 +22,7 @@ def index(request, sitemaps,
|
||||||
if pages > 1:
|
if pages > 1:
|
||||||
for page in range(2, pages+1):
|
for page in range(2, pages+1):
|
||||||
sites.append('%s://%s%s?p=%s' % (protocol, current_site.domain, sitemap_url, page))
|
sites.append('%s://%s%s?p=%s' % (protocol, current_site.domain, sitemap_url, page))
|
||||||
xml = loader.render_to_string(template_name, {'sitemaps': sites})
|
return TemplateResponse(request, template_name, {'sitemaps': sites}, mimetype=mimetype)
|
||||||
return HttpResponse(xml, mimetype=mimetype)
|
|
||||||
|
|
||||||
def sitemap(request, sitemaps, section=None,
|
def sitemap(request, sitemaps, section=None,
|
||||||
template_name='sitemap.xml', mimetype='application/xml'):
|
template_name='sitemap.xml', mimetype='application/xml'):
|
||||||
|
@ -44,5 +44,4 @@ def sitemap(request, sitemaps, section=None,
|
||||||
raise Http404("Page %s empty" % page)
|
raise Http404("Page %s empty" % page)
|
||||||
except PageNotAnInteger:
|
except PageNotAnInteger:
|
||||||
raise Http404("No page '%s'" % page)
|
raise Http404("No page '%s'" % page)
|
||||||
xml = smart_str(loader.render_to_string(template_name, {'urlset': urls}))
|
return TemplateResponse(request, template_name, {'urlset': urls}, mimetype=mimetype)
|
||||||
return HttpResponse(xml, mimetype=mimetype)
|
|
|
@ -313,6 +313,15 @@ parameter to the ``sitemap`` and ``index`` views via the URLconf::
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
.. versionchanged:: 1.4
|
||||||
|
|
||||||
|
In addition, these views also return
|
||||||
|
:class:`~django.template.response.TemplateResponse`
|
||||||
|
instances which allow you to easily customize the response data before
|
||||||
|
rendering. For more details, see the
|
||||||
|
:doc:`TemplateResponse documentation </ref/template-response>`.
|
||||||
|
|
||||||
Context variables
|
Context variables
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue