在 Django 中创建站点地图时出现 'ArticleSitemap' 对象没有属性 'get_urls' 错误
getting 'ArticleSitemap' object has no attribute 'get_urls' error when creating sitemap in django
按照django官方文档的描述和sitemap的标准设置,但出现以下错误:
/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(<b>Sitemap</b>):
changefreq = 'monthly'
priority = 0.5
def items(self):
return Article.objects.filter(active=True)
def lastmod(self, obj):
return obj.edited_at
按照django官方文档的描述和sitemap的标准设置,但出现以下错误:
/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(<b>Sitemap</b>):
changefreq = 'monthly'
priority = 0.5
def items(self):
return Article.objects.filter(active=True)
def lastmod(self, obj):
return obj.edited_at