A small Django app to manage sitemap.xml overrides on a per-object basis
Homepage Repository PyPI Python
pip install django-sitemapper==1.0.0-alpha.2
A small Django app to manage sitemap.xml overrides on a per-object basis.
Brief installation notes are given below, but see our online documentation for more details.
Django 1.4.2 or greater, Python 2.7 or greater.
Use your favorite Python installer to install it from PyPI:
$ pip install django-sitemapper
If you are using pip
version 1.4 or later you'll need to explicitly allow pre-release installation:
$ pip install --pre django-sitemapper
Or get the source from the application site:
$ hg clone https://bitbucket.org/mhurt/django-sitemapper $ cd django-sitemapper $ python setup.py install
Add "sitemapper"
to your INSTALLED_APPS
setting like this:
INSTALLED_APPS = { ... 'sitemapper' }
For Django 1.7 users, run python manage.py migrate
to create the
models. Otherwise simply run python manage.py syncdb
.
Create a sitemaps.py
file within your app directory and add the following
(replacing MyModel with whatever you called yours):
# sitemaps.py from sitemapper.sitemaps import Sitemap from .models import MyModel class MyModelSitemap(Sitemap): # Set some defaults for your model's sitemap... default_changefreq = 'weekly' default_priority = 0.5 # ... and the queryset you want to use... queryset = MyModel.objects.all() # ... and some means to access the last-modified timestamp. def lastmod(self, obj): return obj.lastmodified
From this point onwards you can use MyModelSitemap
as you would any other
sitemaps instance. See
Django's sitemaps documentation
for how to wire this up with your urlconf.
The project is licensed under the MIT license.
Hurrah! Finally reached v1.0 :)
sitemapper.sitemaps
has been refactored, with improved docstrings (i.e. I've written some).sitemapper.sitemaps.SitemapBase
moves queryset and ContentType
handling to a root class. The actual Sitemap
class now extends this but
is otherwise unchanged.sitemapper.sitemaps.GenericSitemap
extends the Sitemap
class but
mirrors the signature of django.contrib.sitemaps.GenericSitemap
. The only
difference is that passing priority
or changefreq
at initialisation
only overrides the default fallbacks.Please let me know if you have any questions, suggestions or problems to report via the issue tracker.
sitemapper.mixins.Sitemap
has moved; use sitemapper.sitemaps.Sitemap
instead.Sitemap
now uses SitemapEntry.get_for_model()
method.SitemapEntry.priority
and SitemapEntry.changefreq
are now nullable.Sitemap.priority()
and Sitemap.changefreq()
methods.sitemapper.SitemappedModel
mixin.sitemapper.mixins.Sitemap
now handles all lookups internally, and more efficiently.