django.urls.exceptions.NoReverseMatch при создании sitemap django AppHookConfig
28 июня 2021 г. 3:29
При использовании aldryn-apphooks-config (или без него, при стандартном использовании apphooks) может возникнуть ошибка при создании sitemap, например, такая:
return reverse('{}:category'.format(self.app_config.namespace), kwargs={'slug': self.slug})
django.urls.exceptions.NoReverseMatch: Reverse for 'category' not found. 'category' is not a valid view function or pattern name.
При использовании модели, например, такой:
class Category(models.Model):
app_config = AppHookConfigField(AlbumConfig, verbose_name='Конфигурация')
title = models.CharField('Название', max_length=80)
slug = models.SlugField('Путь', max_length=80, unique=True)
objects = ActiveQuerySet.as_manager()
def get_absolute_url(self):
return reverse('{}:category'.format(self.app_config.namespace), kwargs={'slug': self.slug})
def __str__(self):
return self.title
class Meta(object):
verbose_name = 'Категория'
verbose_name_plural = 'Категории'
И sitemap:
class SBAlbumCategorySitemap(Sitemap):
changefreq = 'monthly'
priority = 0.5
i18n = True
def items(self):
return Category.objects.all()
Хотя на сайте может всё правильно работать, но ошибка может возникнуть, если у вас несколько языков сайта, но вы навесили приложение не на все языки. Генератор sitemap пытается получить url (через get_absolute_url()) для каждого языка, но не находя для какого-то определённого языка и выдаёт ошибку NoReverseMatch.
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 0