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