MrDoc/app_doc/sitemaps.py

67 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# coding:utf-8
# @文件: sitemaps.py
# @创建者:州的先生
# #日期2020/2/26
# 博客地址zmister.com
from django.contrib.sitemaps import Sitemap,GenericSitemap
from django.urls import reverse
from app_doc.models import Doc,Project
# 首页地图
class HomeSitemap(Sitemap):
priority = 0.5
changefreq = 'daily'
def items(self):
return ['pro_list']
def location(self, item):
return reverse(item)
# 文集地图
class ProjectSitemap(Sitemap):
changefreq = "daily"
priority = 0.8
def items(self):
return Project.objects.filter(role=0)
# 文档地图
class DocSitemap(Sitemap):
changefreq = "daily"
priority = 0.8
def __init__(self,pro):
self.pro = pro
def items(self):
return Doc.objects.filter(status=1,top_doc=self.pro)
def lastmod(self,obj):
return obj.modify_time
class SitemapAll():
def __init__(self):
self.sitemaps = {}
def __iter__(self):
self._generate_sitemaps_dict()
return self.sitemaps.__iter__()
def __getitem__(self, key):
self._generate_sitemaps_dict()
return self.sitemaps[key]
def items(self):
self._generate_sitemaps_dict()
return self.sitemaps.items()
def _generate_sitemaps_dict(self):
if self.sitemaps:
return
for project in Project.objects.filter(role=0):
sitemap = DocSitemap(pro=project.id)
self.sitemaps[str(project.id)] = sitemap
self.sitemaps['home'] = HomeSitemap()