django.urls.exceptions.NoReverseMatch при создании sitemap django AppHookConfig

27 июня 2021 г. 23: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 из 5 (всего 0 оценок)

captcha
Отмеченные звёздочкой поля ( * ) являются обязательными для заполнения.

Спасибо за ваш отзыв!

После нажатия кнопки "Отправить" ваше сообщение будет доставлено мне на почту.

Автор статьи

Артём Мальцев

Веб-разработчик, владеющий знаниями языка программирования Python, фреймворка Django, системы управления содержимым сайта Django CMS, платформы для создания интернет-магазина Django Shop и многих различных приложений, использующих эти технологии.

Права на использование материала, расположенного на этой странице https://vivazzi.pro/ru/it/noreversematch-sitemap-django-apphookconfig/:

Разрешается копировать материал с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Артём Мальцев
Ссылка на статью: <a href="https://vivazzi.pro/ru/it/noreversematch-sitemap-django-apphookconfig/">https://vivazzi.pro/ru/it/noreversematch-sitemap-django-apphookconfig/</a>

Больше: Правила использования сайта

Для тех, кто продаёт через свой профиль в соц. сетях: моя сестра, Анастасия Мальцева запустила свой курс: «Комфортные продажи через контент»

Все знания построены на собственном опыте и имеют хороший результат, поэтому если вы продаёте товары или услуги и хотите повысить эффективность вашего аккаунта или сайта, то курс будет для вас полезен!

Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.

Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.

Комментарии: 0

Вы можете оставить комментарий как незарегистрированный пользователь.

Но зарегистрировавшись, вы сможете:

  • получать оповещения об ответах
  • просматривать свои комментарии
  • иметь возможность использовать все функции разработанных сервисов

Для комментирования от своего имени войдите или зарегистрируйтесь на сайте Vuspace

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте

Выберите валюту для отображения денежных единиц