2016-07-02 8 views
1

定期的に追加または削除されるコンテンツ用の動的ページが含まれています。それに加えて、ウェブサイトには、/、/ about、/ how-it-worksなどのように常に存在する静的ページもあります。 sitemaps内のすべての動的コンテンツページを読み込むようにsitemaps.pyファイルを設定しました。Djangoのサイトマップ静的ページ

sitemap.xmlと

... 
<url> 
<loc> 
https://www.mywebsite.com/record?type=poem&id=165 
</loc> 
<changefreq>weekly</changefreq> 
<priority>0.5</priority> 
</url> 
... 

sitemaps.py

from django.contrib.sitemaps import Sitemap 

from website.models import Content 

class MySitemap(Sitemap): 
    changefreq = "weekly" 
    priority = 0.5 

    def items(self): 
     return Content.objects.all() 

models.py

class Content(models.Model): 
    content_type = models.CharField(max_length=255) 
    ... 
    def get_absolute_url(self): 
     return '/record?type=' + self.content_type + '&id=' + str(self.id) 

どのように私はカントーを追加します私のサイトマップの静的なページ(/、/ aboutな​​ど)? ありがとう!

答えて

0

少しの検索の後、私はこれを見つけましたDjango Sitemaps and "normal" views。マット・オースティンの答えに従って、私は自分が望むものを達成することができました。私は私がやったことを、将来の参考のためここに残します。

sitemaps.py

from django.contrib.sitemaps import Sitemap 
from django.core.urlresolvers import reverse 

from website.models import Content 

class StaticSitemap(Sitemap): 
    """Reverse 'static' views for XML sitemap.""" 
    changefreq = "daily" 
    priority = 0.5 

    def items(self): 
     # Return list of url names for views to include in sitemap 
     return ['landing', 'about', 'how-it-works', 'choose'] 

    def location(self, item): 
     return reverse(item) 

class DynamicSitemap(Sitemap): 
    changefreq = "daily" 
    priority = 0.5 

    def items(self): 
     return Content.objects.all() 

urls.py

from website.sitemaps import StaticSitemap, DynamicSitemap 
sitemaps = {'static': StaticSitemap, 'dynamic': DynamicSitemap} 

urlpatterns = [ 
    ... 
    url(r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}), 
] 
関連する問題