sitemap
settings.py |
INSTALLED_APPS = [ ‘django.contrib.sites’, ‘django.contrib.sitemap’,]SITE_ID = 1 |
pj/pj/urls.py |
from django.contrib import adminfrom django.contrib.sitemaps import Sitemapfrom django.contrib.sitemaps.views import sitemapfrom django.shortcuts import resolve_urlfrom app.models import App class PostSitemap(Sitemap): changefreq = “never”priority = 0.5 def items(self): return App.objects.all() def location(self, obj): return resolve_url(‘app:detail’, pk=obj.pk) def lastmod(self, obj): return obj.created_datetime Class StatiSitemap(Sitemap): Changefreq = “never” Priority = 0.5 Def items(self): return [‘app:index’] Def location(self, obj): return resolve_url(obj) sitemaps = { ‘posts’: PostSitemap, ‘static’: StaticSitemap,} urlpatterns = [ path(‘sitemap.xml/’, sitemap, {‘sitemaps’:sitemaps}, name=’sitemap’),] |
models.py |
from django.contrib.sitemaps import ping_googleclass App(models.Model): ~~~ def __str__(self): return self.title def save(self, *args, **kwargs): super().save(*args, **kwargs) try: ping_google() except Exception: pass |
引用:https://blog.narito.ninja/detail/55
コッチの方がいいかも↓
Herokuではsitemap.xmlを生成できても、サーチコンソールに認識してもらえないらしい