我已经在我的博客中添加了站点地图功能,效果很好。但是在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)])
哦,我发现了我的错误。 我在models.py文件self.id中定义了。我将其更改为
self.slug
,并将我的url.py更改为<slug:slug>
现在它工作得很好
相关问题 更多 >
编程相关推荐