7

私は次のモデル関係を持っています:

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)

セクションのサイトマップ ファイルを含む記事のサイトマップを作成する必要があります。ここでdjangoのドキュメントを読んでいましたhttp://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/

しかし、どうすれば答えを見つけることができませんでした:

  1. この場合、サイトマップ クラスを定義します
  2. セクションパラメータをURLファイルに渡すにはどうすればよいですか(ドキュメントで説明されています)
  3. アプリケーションの別のファイルでサイトマップを python クラスとして定義した場合、どこから {'sitemaps': sitemaps} を取得できますか
4

3 に答える 3

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}),
)
于 2009-09-08T18:28:40.080 に答える