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