问题描述
按照 django 官方文档和站点地图的标准设置的说明进行操作,但出现以下错误:
/sitemap.xml/ 处的属性错误 'ArticleSitemap' 对象没有属性 'get_urls'
有我的网址:
from django.contrib.sitemaps.views import sitemap
from . import views
from .sitemaps import StaticViewSitemap,ArticleSitemap,ArticleCategorySitemap
sitemaps = {'static': StaticViewSitemap,'article': ArticleSitemap,'article-category': ArticleCategorySitemap}
urlpatterns = [
path('sitemap.xml/',sitemap,{'sitemaps': sitemaps},name='django.contrib.sitemaps.views.sitemap'),]
有我的sitemaps.py:
from django.contrib.sitemaps import Sitemap
from django.shortcuts import reverse
from iman_articles.models import Article,Category
class StaticViewSitemap(Sitemap):
def items(self):
return ['home']
def location(self,item):
return reverse(item)
class ArticleCategorySitemap(Sitemap):
changefreq = 'never'
priority = 0.5
def items(self):
return Category.objects.all()
class ArticleSitemap():
changefreq = 'monthly'
priority = 0.5
def items(self):
return Article.objects.filter(active=True)
def lastmod(self,obj):
return obj.edited_at
解决方法
您的 ArticleSitemap
应该继承自 Sitemap
,因此:
# ↓ inherit
class ArticleSitemap(Sitemap):
changefreq = 'monthly'
priority = 0.5
def items(self):
return Article.objects.filter(active=True)
def lastmod(self,obj):
return obj.edited_at