プロジェクトのアプリ (サイトマップが必要なもの) 内にサイトマップを作成します。ドキュメントには、何をどこで行うかについては記載されていません。自由に好きなように実行できるため、URL で渡される辞書に登録するだけで済みます。 . たとえば、アプリyour_project
を持つ があります。blog
your_project
- blog
- models.py
- views.py
- ...
- sitemap.py
あなたの sitemap.py で:
from django.contrib.sitemaps import Sitemap
from blog.models import Entry
class BlogSitemap(Sitemap):
changefreq = "never"
priority = 0.5
def items(self):
return Entry.objects.filter(is_draft=False)
def lastmod(self, obj):
return obj.pub_date
次に、urls.py (プロジェクトのメインの urls.py) で:
...
from blog.sitemap import BlogSitemap
sitemaps = {
'blog':BlogSitemap
}
url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.index', {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),
必要なすべてのサイトマップに対して同じことを繰り返します。プロジェクトが大きい (多くのアプリ) 場合は、アプリごとに異なるサイトマップを使用するのが賢明です。次に、urls.py で:
...
from blog.sitemap import BlogSitemap
from fooapp.sitemap import FooSitemap
from barapp.sitemap import BarSitemap
sitemaps = {
'blog':BlogSitemap,
'foo':FooSitemap,
'bar':BarSitemap,
}