Sitemaps возвращает NoReverseMatch в /sitemap.xml
Я пытаюсь добавить sitemaps в свое приложение, но когда я добавляю url, который имеет slug, он выдает ошибку http://127.0.0.1:8000/sitemap.xml
Повтор для 'view-Question' без аргументов не найден. Испробован 1 шаблон(ы): ['questions/(?P[-a-zA-Z0-9_]+)/\Z']
Я следую этому Учебнику
мои урлы:
sitemaps = {
'static': StaticViewSitemap,
}
path('', views.Home, name='Home'),
path('login', views.login, name='login'),
path('register/', views.register, name='register'),
path('Terms', views.rules, name='Rules'),
path('questions/<slug:slug>/', views.viewQuestion, name='view-Question'),
path('feedback/', views.PostFeedBack.as_view(), name='FeedBack'),
path('sitemap.xml', sitemap, {'sitemaps': sitemaps},
name='django.contrib.sitemaps.views.sitemap'),
мой файл sitemaps.py:
from django.contrib import sitemaps
from django.urls import reverse
class StaticViewSitemap(sitemaps.Sitemap):
priority = 0.5
changefreq = 'daily'
def items(self):
return ['Home', 'login', 'register', 'Rules', 'FeedBack', 'view-Question']
def location(self, item):
return reverse(item)
Спасибо.
Мой подход, заключающийся в вызове reverse(item), не работает для шаблонов URL, имеющих аргументы. Я не могу просто вызвать:
reverse(item)
Мне нужен первичный ключ, например
reverse('view-Question', args=[item])
Вот как я решил свою проблему.