A small Django app to manage sitemap.xml overrides on a per-object basis
Project description
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.
Requirements
Django 1.4.2 or greater, Python 2.7 or greater.
Installation
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
Configuration
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.
Setting up a sitemap
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.
Contribute
Issue Tracker: https://bitbucket.org/mhurt/django-sitemapper/issues
Source Code: https://bitbucket.org/mhurt/django-sitemapper/
License
The project is licensed under the MIT license.
Release Notes
1.0.0-rc
Refactored: sitemapper.sitemaps has been refactored, with improved docstrings (i.e. I’ve written some).
New: sitemapper.sitemaps.SitemapBase moves queryset and ContentType handling to a root class. The actual Sitemap class now extends this but is otherwise unchanged.
New: 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.
I’m so happy to finally have reached release-candidate with this project!
I’m afraid I’ve cheated a little by not working more on the docs and tests but I wanted this version in the wild as soon as possible. From this point onwards there will only be bugfixes on the code, and work on the tests and docs.
Please let me know if you have any questions, suggestions or problems to report via the issue tracker.
1.0.0-beta.3
Deprecated: sitemapper.mixins.Sitemap has moved; use sitemapper.sitemaps.Sitemap instead.
Fixed: Incorrect tox testenv.
Changed: Refactored ContentType lookup into custom manager method. Sitemap now uses SitemapEntry.get_for_model() method.
1.0.0-beta.2
Schema: SitemapEntry.priority and SitemapEntry.changefreq are now nullable.
Fixed: admin select widget issue for SitemapEntry.priority values of decimal integers (i.e. ‘0.0’ and ‘1.0’)
Changed: Refactored Sitemap.priority() and Sitemap.changefreq() methods.
New: Added support for South migrations.
New: Support Django 1.4.2 and greater.
1.0.0-beta.1
Backwards Incompatible: Removed sitemapper.SitemappedModel mixin.
Changed: sitemapper.mixins.Sitemap now handles all lookups internally, and more efficiently.
New: Support Django 1.5 and greater.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-sitemapper-1.0.0-rc.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1048e8df359ffc3b4deac8d0c277df95699c419bc05392dca4f5cb960944a63 |
|
MD5 | 1e3b1f875768c3149db45c02b8f2c839 |
|
BLAKE2b-256 | 22f2604df1f596de93f440ba5e9f3b4dd15cc43c0ce200197ac54dafcdf6485d |