1
0
Fork 0
mirror of https://github.com/EDeev/deev.space.git synced 2026-10-07 20:49:59 +03:00
deev.space/main/sitemaps.py
Egor Deev 878b4580e4 Версия 2.0: код с продакшена deev.space
Перенесено всё, что накопилось на сервере с декабря 2025:
- анонимный посетитель по подписанной cookie (main/middleware.py), лайки и дизлайки
  без регистрации с антинакруткой, уникальные просмотры статей;
- карточка-паспорт, стек в одну строку, блок «В цифрах»;
- миграции 0005–0008, команды load_initial_data и populate_demo, robots.txt;
- обновлённые шаблоны, стили и скрипты.

Безопасность и порядок:
- все секреты только из окружения, значения по умолчанию пустые;
- DEBUG по умолчанию выключен, без DJANGO_SECRET_KEY запуск в бою невозможен;
- ALLOWED_HOSTS, путь к базе и SSL-редирект настраиваются переменными;
- убрана статика админки Django (результат collectstatic) и media из git;
- добавлены .gitignore и .gitattributes (переводы строк — LF).
2026-10-02 11:58:54 +00:00

39 lines
No EOL
868 B
Python

from django.contrib.sitemaps import Sitemap
from django.urls import reverse
from .models import Article, Project
class ArticleSitemap(Sitemap):
changefreq = 'weekly'
priority = 0.8
def items(self):
return Article.objects.filter(is_published=True)
def lastmod(self, obj):
return obj.updated_at
def location(self, obj):
return obj.get_absolute_url()
class ProjectSitemap(Sitemap):
changefreq = 'monthly'
priority = 0.7
def items(self):
return Project.objects.filter(is_visible=True)
def location(self, obj):
return f'/projects/#{obj.slug}'
class StaticViewSitemap(Sitemap):
priority = 0.5
changefreq = 'monthly'
def items(self):
return ['index', 'about', 'projects', 'blog', 'achievements', 'contacts']
def location(self, item):
return reverse(item)