Commit 886f7cc7 authored by Marc Tamlyn's avatar Marc Tamlyn
Browse files

Merge pull request #1098 from zsiciarz/ticket-16829

Added example of using sitemaps with static views.
parents 753edfa4 d77082b4
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
@@ -280,6 +280,46 @@ Here's an example of a :doc:`URLconf </topics/http/urls>` using both::

.. _URLconf: ../url_dispatch/

Sitemap for static views
========================

Often you want the search engine crawlers to index views which are neither
object detail pages nor flatpages. The solution is to explicitly list URL
names for these views in ``items`` and call
:func:`~django.core.urlresolvers.reverse` in the ``location`` method of
the sitemap. For example::

    # sitemaps.py
    from django.contrib import sitemaps
    from django.core.urlresolvers import reverse

    class StaticViewSitemap(sitemaps.Sitemap):
        priority = 0.5
        changefreq = 'daily'

        def items(self):
            return ['main', 'about', 'license']

        def location(self, item):
            return reverse(item)

    # urls.py
    from django.conf.urls import patterns, url
    from .sitemaps import StaticViewSitemap

    sitemaps = {
        'static': StaticViewSitemap,
    }

    urlpatterns = patterns('',
        url(r'^$', 'views.main', name='main'),
        url(r'^about/$', 'views.about', name='about'),
        url(r'^license/$', 'views.license', name='license'),
        # ...
        url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps})
    )


Creating a sitemap index
========================