Add sitemap

This commit is contained in:
Nyymix 2025-04-10 22:59:09 +03:00
parent 97f2564293
commit 191fc0780c
3 changed files with 30 additions and 0 deletions

View file

@ -37,6 +37,7 @@ INSTALLED_APPS = [
'django.contrib.sessions', 'django.contrib.sessions',
'django.contrib.messages', 'django.contrib.messages',
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'django.contrib.sitemaps',
'imagekit', 'imagekit',
'django_cleanup', 'django_cleanup',
'gallery' 'gallery'

View file

@ -1,10 +1,18 @@
from django.conf import settings from django.conf import settings
from django.conf.urls.static import static from django.conf.urls.static import static
from django.contrib import admin from django.contrib import admin
from django.contrib.sitemaps.views import sitemap
from django.urls import include, path from django.urls import include, path
from django.views.generic import RedirectView from django.views.generic import RedirectView
from gallery.sitemaps import AlbumSitemap
sitemaps = {
'albums': AlbumSitemap,
}
urlpatterns = [ urlpatterns = [
path("sitemap.xml", sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('favicon.ico/', RedirectView.as_view(url='/static/favicon.ico', permanent=True)), path('favicon.ico/', RedirectView.as_view(url='/static/favicon.ico', permanent=True)),
path('', include(('gallery.urls', 'gallery'), namespace='gallery')), path('', include(('gallery.urls', 'gallery'), namespace='gallery')),
@ -15,3 +23,6 @@ if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

18
gallery/sitemaps.py Normal file
View file

@ -0,0 +1,18 @@
from django.contrib.sitemaps import Sitemap
from django.urls import reverse
from .models import Album
class AlbumSitemap(Sitemap):
changefreq = "monthly"
priority = 0.8
def items(self):
return Album.objects.filter(is_public=True)
def lastmod(self, obj):
return obj.album_date
def location(self, obj):
return reverse('gallery:album_url', kwargs={'album_slug': obj.slug})