#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}/'