Django開発~ブログ構築編3~スタイルの続きです。
Djangoでサイトマップの実装してみます。
<目次>
sitemapファイルの作成
blogアプリケーション配下にsitemaps.pyファイルを作成しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
vi app/blog/sitemaps.py """ Create sitemap https://docs.djangoproject.com/en/2.2/ref/contrib/sitemaps/ To see sitemap, you need to access http://localhost:8000/sitemap.xml or http://localhost:8000/admin/sites/site/ """ from django.contrib.sitemaps import Sitemap from .models import Post class PostSitemap(Sitemap): changefreq = 'weekly' priority = 0.9 def items(self): return Post.published.all() def lastmod(self, obj): return obj.updated |
settings.pyの設定変更
続いて、settings.pyに設定を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
vi app/app/settings.py # new SITE_ID = 1 # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # myapp 'blog', # sitemap(new) 'django.contrib.sites', 'django.contrib.sitemaps', ] |
URLの設定変更
プロジェクト配下のURLにサイトマップのパスを追加しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
vi app/app/urls.py from django.contrib import admin from django.urls import path, include from django.contrib.sitemaps.views import sitemap from blog.sitemaps import PostSitemap # new sitemaps = { 'posts': PostSitemap, } urlpatterns = [ path('admin/', admin.site.urls), path('blog/', include('blog.urls', namespace='blog')), # new path('sitemap.xml', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'), ] |
ここまで設定が完了したらマイグレーションを実行しましょう。
1 |
make migrate |
「http://localhost:8000/sitemap.xml」にアクセスするとサイトマップが表示されるはずです。

おわりに
次回は、カスタムユーザーモデルを実装します^^
コメントを残す
コメントを投稿するにはログインしてください。