为什么我的站点地图显示我帖子的 /number 而不是 /title?

Why my Sitemap show /number and not /title of my posts?

我已将站点地图功能添加到我的博客中,并且运行良好。但是在我的 /sitemap.xml 文件中,它显示的不是标题,而是 post 的编号。 我试图将我的 urls.py 文件中的定义更改为,但它在我的域后显示了一些奇怪的东西。 可能我哪里有什么小错误

我的主要 urls.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'),
]

我的 sitemaps.py 文件:

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

class PostSitemap(Sitemap):

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

我的 models.py 文件:

from django.urls import reverse

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

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

现在可以正常使用了。