首页 > 解决方案 > 如何在站点地图 Django 的 url 中添加斜杠 (/)?

问题描述

我想在 Django 的站点地图中添加 (/)。我使用以下代码在 django 中生成站点地图

我的 url.py 是

from django.contrib.sitemaps.views import sitemap
from myApp.sitemaps import staticSitemap , mySitemap

sitemaps = {
'staticSitemap':staticSitemap,
'mySitemap':mySitemap
}

urlpatterns = [
    path('admin/', admin.site.urls),
    path('sitemap.xml', sitemap, {'sitemaps': sitemaps} ),
    path('<slug:slug>/',apps.switcher, name='calc_detail'),
]

我的站点地图文件如下所示

from django.contrib.sitemaps import Sitemap
from django.shortcuts import reverse
from .models import SingleCalculator

class staticSitemap(Sitemap):
    changefreq = "weekly"
    priority = 0.9
    def items(self):
        return ['home','about','contact','privacy']
    def location(self, item):
        return reverse(item)


class mySitemap(Sitemap):
        changefreq = "weekly"
        priority = 0.7
        
        def items(self):
            return SingleCalculator.objects.all()
        def lastmod(self,obj):
            return obj.lastmod

站点地图现在正在生成,就像在 loc 中的以下 URL

<loc>https://sitename.com/absolute-difference-calculator</loc>

我想要(/)在 url 结束后。我怎样才能做到这一点?

标签: djangodjango-viewsdjango-sitemaps

解决方案


在模型类SingleCalculator中添加get_absolute_url函数:

def get_absolute_url(self):
        return f'/{self.slug}/'

推荐阅读