Вложенные категории Django - путь, получающий 404 на дочерний slug
Я пытаюсь создать вложенные категории с помощью django-treebeard.
И в админке это решение работает нормально. Но мне нужно показать эти категории. Когда я пытаюсь достичь корневой категории, равной: /kategorie/wegetarianskie
, то все работает нормально, но когда я пытаюсь достичь fullslug с дочерними категориями, равными: /kategorie/wegetarianskie/obiady
, то у меня возникает ошибка 404, и я не знаю почему.
Возможно, у кого-то есть ответ.
Моя модель:
class Category(MP_Node):
name = models.CharField(max_length=255, verbose_name='Nazwa kategorii')
slug = AutoSlugField(populate_from='name', unique=True)
fullslug = models.CharField(max_length=255, verbose_name='Pełny adres kategorii', blank=True)
created_at = models.DateTimeField(default=datetime.datetime.now)
node_order_by = ['name']
Затем с помощью сигнала я создаю полный slug следующим образом:
@receiver(post_save, sender=Category)
def save_parentname(sender, instance, **kwargs):
if not instance.fullslug:
if instance.is_root():
instance.fullslug = instance.slug
instance.save()
else:
catslug = '/'.join([instance.get_parent().slug, instance.slug])
instance.fullslug = catslug
instance.save()
Когда дочерняя категория сохраняется, сигнал создает полный slug, например: /kategorie/wegetarianskie/obiady
Я также get_absolute_url:
def get_absolute_url(self):
return reverse('categorydetail',
args=[self.fullslug])
Вид:
def category_detail(request, fullslug):
category = Category.objects.get(fullslug=fullslug)
return render(request, 'categories/category_detail.html', { 'category': category })
Урлы:
urlpatterns = [
path('wszystkie', views.category_list, name='categorylist'),
path('<fullslug>/', views.category_detail, name='categorydetail'),
]