您在项目的应用程序中创建站点地图(您需要站点地图的那些),文档没有说明什么和在哪里,因为您可以随心所欲地做,您只需将它们注册在传递的字典中在网址中。
例如,您有一个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,
}