首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django SItemap指数NoReverseMatch at /sitemap.xml

Django SItemap指数NoReverseMatch at /sitemap.xml
EN

Stack Overflow用户
提问于 2016-06-14 05:54:59
回答 2查看 2.2K关注 0票数 2

我正在尝试实现站点地图索引,但是我在sitemap.xml上得到了下面的错误。sitemap-posts.xml和sitemap-catories.xml运行良好。

误差

代码语言:javascript
运行
复制
NoReverseMatch at /sitemap.xml

Reverse for 'django.contrib.sitemaps.views.sitemap' with arguments '()' and keyword arguments '{'section': 'categories'}' not found. 0 pattern(s) tried: []

sitemap.py

代码语言:javascript
运行
复制
from django.contrib.sitemaps import Sitemap

from .models import Post, Category

class PostSitemap(Sitemap):
    changefreq = 'daily'
    priority = 0.5

    def items(self):
        return Post.objects.published()

    def lastmod(self, obj):
        return obj.mod_date

class CategorySitemap(Sitemap):
    changefreq = 'daily'
    priority = 0.5

    def items(self):
        return Category.objects.all()

    def lastmod(self, obj):
        return obj.created_date

urls.py

代码语言:javascript
运行
复制
from django.conf.urls import url
from django.contrib.sitemaps import views as sitemap

from . import views
from .sitemaps import PostSitemap, CategorySitemap

sitemaps = {
    'posts': PostSitemap,
    'categories': CategorySitemap,
}

urlpatterns = [
    url(r'^sitemap\.xml$', sitemap.index, { 'sitemaps': sitemaps }, 
        name='app1-sitemap'),
    url(r'^sitemap-(?P<section>.+)\.xml$', sitemap.sitemap, { 'sitemaps': sitemaps }, 
        name='django.contrib.sitemaps.views.sitemap1'),
]

请帮我改正这个错误。

EN

回答 2

Stack Overflow用户

发布于 2016-06-14 12:06:45

将名称从“django.contrib.sitemaps.views.sitemap1”改为“sitemaps”。显然它用这个名字来解决问题。

代码语言:javascript
运行
复制
name='django.contrib.sitemaps.views.sitemap1'

我的urls看起来就像这样,它工作得很好,当我更改名称时,我得到了一个接近您的错误。

代码语言:javascript
运行
复制
from django.contrib.sitemaps.views import sitemap, index
    urlpatterns += [
            url(r'^sitemap\.xml$', cache_page(86400)(index), {'sitemaps': sitemaps, 'sitemap_url_name': 'sitemaps'}),
            url(r'^sitemap-(?P<section>.+)\.xml$', cache_page(86400)(sitemap), {'sitemaps': sitemaps}, name='sitemaps' )
        ]

sitemap_url_name是必需的,因为我正在缓存。

票数 2
EN

Stack Overflow用户

发布于 2017-11-29 09:19:47

我找到了第二个URL conf的名字。应该是

代码语言:javascript
运行
复制
name='django.contrib.sitemaps.views.sitemap' 

,它指的是官方文档https://docs.djangoproject.com/en/1.11/ref/contrib/sitemaps/#creating-a-sitemap-index

而不是你用的东西

代码语言:javascript
运行
复制
name='django.contrib.sitemaps.views.sitemap1'

它能在我的电脑上工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37803947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档