Как добавить завершающую косую черту (/) в URL сайта сайта Django?

#django #django-views #django-sitemaps

#django #django-просмотры #django-sitemaps

Вопрос:

Я хочу добавить (/) в карту сайта Django. Я использовал следующий код для создания sitemap в 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'),
]
 

мой файл sitemap выглядит следующим образом

 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
 

Карта сайта теперь генерируется как следующий URL-адрес в loc

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

Я хочу (/) после конца URL. Как я могу это сделать?

Ответ №1:

В классе модели SingleCalculator добавить get_absolute_url функцию:

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