Django 3 Несколько моделей во view - Page not found (404)

Есть 2 модели Category и Tag, которые хотелось бы выводить в 1 view.

model 1

class Category(MPTTModel):
""" Category"""
name = models.CharField(max_length=75)
slug = models.SlugField(max_length=75, unique=True, blank=True)
parent = TreeForeignKey(
    "self",
    verbose_name="Родительская категория",
    on_delete=models.SET_NULL,
    null=True,
    blank=True,
    related_name='children'
)

def save(self, *args, **kwargs):
    self.slug = gen_slug(self.name)
    super().save(*args, **kwargs)

def __str__(self):
    return f"{self.name}"

def get_absolute_url(self):
    return reverse("category_detail_url", kwargs={"slug": self.slug})

class Meta:
    verbose_name = "Категория"
    verbose_name_plural = "Категории"
    ordering = ['id']

model 2

class Tag(MPTTModel):
""" Tag """
name = models.CharField(max_length=75)
slug = models.SlugField(max_length=75, unique=True, blank=True)
category = models.ManyToManyField(Category, related_name='tag_category_rn', blank=True)
parent = TreeForeignKey(
    "self",
    verbose_name="Родительский тэг",
    on_delete=models.SET_NULL,
    null=True,
    blank=True,
    related_name='children'
)

def save(self, *args, **kwargs):
    self.slug = gen_slug(self.name)
    super().save(*args, **kwargs)

def __str__(self):
    return f"{self.name}"

def get_absolute_url(self):
    return reverse("category_detail_url", kwargs={"slug": self.slug})

class Meta:
    verbose_name = "Тэг"
    verbose_name_plural = "Тэги"
    ordering = ['id']

view

class CategoryDetailView(DetailView, MultipleObjectMixin):
""" Single Category """
model = Category
slug = "url"
paginate_by = 21

def get_context_data(self, **kwargs):
    object_list = AddVideo.objects.all()
    context = super(CategoryDetailView, self).get_context_data(object_list=object_list, **kwargs)
    context['tag'] = Tag.objects.all()
    return context

urls

urlpatterns = [
path('<slug:slug>', views.CategoryDetailView.as_view(), name="category_detail_url"),
]

Проблема в том, что объекты из модели Category отображаются нормально, а из модели Tag выдает ошибку:

Page not found (404)

slug:slug [name='category_detail_url']

The current path, tag-1, matched the last one.

Подскажите, пожалуйста, как решить данную проблему?


Ответы (0 шт):