django - 如何在站点地图 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 结束后。我怎样才能做到这一点?
解决方案
在模型类SingleCalculator中添加get_absolute_url
函数:
def get_absolute_url(self):
return f'/{self.slug}/'
推荐阅读
- ember.js - 哪个 Serializer 或 Adapter 最适合在 ember js 中工作?
- php - Laravel 5.6 降价邮件中的图像在 Gmail 中不可见
- java - 如果 junit 5 测试失败,Pact 不会将提供者验证结果发送给 Pact 代理
- javascript - 如何在滑块内实现选取框/自动收报机效果?
- angular - 角 4+。在解析器处理过程中显示微调器
- asp.net - asp.net 没有编译
- cucumber-jvm - 空手道:如何传递动态路径参数?
- excel - Excel 宏在 9 行后停止生成 Word 文档
- r - 无法打开 R studio 错误“检索包安装上下文”
- google-chrome-extension - 如何使 chrome 扩展对任何主机都有效