为什么我的网站地图会显示我的文章/编号而不是/标题?

2024-09-28 03:13:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经在我的博客中添加了站点地图功能,效果很好。但是在my/sitemap.xml文件中,它显示的不是文章的标题,而是文章的编号。 我试图将我的URL.py文件中的定义更改为,但它在我的域之后显示了一些奇怪的东西。 也许我有点小错误

我的主URL.py文件:

from django.contrib import admin
from django.urls import path, include
from django.contrib.sitemaps.views import sitemap
from blog.sitemaps import PostSitemap
from blog import views as blog_views

sitemaps = {
'posts': PostSitemap,
}

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
        path('sitemap.xml', sitemap, {'sitemaps': sitemaps},
         name='django.contrib.sitemaps.views.sitemap'),
    path('<int:id>', blog_views.PostDetail, name='post'),
]

My sitemaps.py文件:

from django.contrib.sitemaps import Sitemap
from .models import Post

class PostSitemap(Sitemap):

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

My models.py文件:

from django.urls import reverse

def get_absolute_url(self):
    return reverse('post', args=[str(self.id)])

Tags: 文件pathdjangofrompyimportselfadmin
1条回答
网友
1楼 · 发布于 2024-09-28 03:13:56

哦,我发现了我的错误。 我在models.py文件self.id中定义了。我将其更改为self.slug,并将我的url.py更改为<slug:slug>

现在它工作得很好

相关问题 更多 >

    热门问题