Сначала добавляете sitemap в settings.py
INSTALLED_APPS = (
...
'django.contrib.sitemaps',
)
Потом создаете файл sitemap.py, например в приложении core
from django.contrib.sitemaps import GenericSitemap
from django.core.urlresolvers import reverse
from your_app.models import Model1, Model2
class Model1Sitemap(GenericSitemap):
limit = 10000
def location(self, obj):
return reverse('model1_details', args=[str(obj.id)])
class Model2Sitemap(GenericSitemap):
limit = 10000
def location(self, obj):
return reverse('model2_details', args=[str(obj.slug)])
model1_dict = {
'queryset': Model1.objects.all(),
}
model2_dict = {
'queryset': Model2.objects.filter(is_published=True),
}
sitemaps = {
'model1': Model1Sitemap(model1_dict , priority=0.9),
'model2': Model2Sitemap(model2_dict , priority=0.6),
}
Потом в urls.py
from django.contrib.sitemaps.views import sitemap
from django.conf.urls import patterns, include, url
from core.sitemap import sitemaps
urlpatterns = patterns(
'django.contrib.sitemaps.views',
(r'^sitemap\.xml$', 'index', {'sitemaps': sitemaps}),
(r'^sitemap-(?P<section>.+)\.xml$', 'sitemap', {'sitemaps': sitemaps}),
)
Вроде бы ничего не напутал.
Updated 12 Feb. 2016, 21:29 by TheFool.