Django站点地图索引示例

Ole*_*nko 4 sitemap django

我有以下模型关系:

class Section(models.Model):
    section = models.CharField(max_length=200, unique=True)
    name = models.CharField(max_length=200, blank = True)


class Article (models.Model):
    url = models.CharField(max_length = 30, unique=True)
    is_published = models.BooleanField()  
    section = models.ForeignKey(Section)
Run Code Online (Sandbox Code Playgroud)

我需要为文章创建一个站点地图,其中包含部分的站点地图文件.我在这里阅读关于它的django文档http://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/

但没有设法找到答案我怎么能:

  1. 在这种情况下定义sitemap类
  2. 如何将节参数传递到url文件中(如文档中所述)
  3. 如果我将sitemap定义为应用程序中另一个文件中的python类,我可以从哪里获得{'sitemaps':sitemaps}

vin*_*ios 6

如果我理解正确,您希望使用站点地图索引,该索引将指向每个部分的单独的站点地图xml文件.

Django通过为索引站点地图提供单独的站点地图视图来支持此功能.

之前没有使用过该功能,但以下内容可能适用于您的情况.

### sitemaps.py
from django.contrib.sitemaps import GenericSitemap
from models import Section

all_sitemaps = {}
for section in Section.objects.all():

    info_dict = {
        'queryset': section.article_set.filter(is_published=True),
    }

    sitemap = GenericSitemap(info_dict,priority=0.6)

    # dict key is provided as 'section' in sitemap index view
    all_sitemaps[section.name] = sitemap

### urls.py
from sitemaps import all_sitemaps as sitemaps

...
...
...

urlpatterns += patterns('',
        (r'^sitemap.xml$', 'django.contrib.sitemaps.views.index', {'sitemaps': sitemaps}),
        (r'^sitemap-(?P<section>.+)\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
)
Run Code Online (Sandbox Code Playgroud)