Дело в том, что у меня есть модель с именем ProductCategory, эта модель может иметь или не иметь другую модель в качестве родительской категории. Считайте, что у меня есть три категории: grandParent -> parent -> child. В настоящее время, когда я нажимаю на дочернюю категорию, URL-адрес / productCategory / child, я также хочу включить его родителей. поэтому, если пользователь нажимает на "дочернюю" категорию, URL-адрес должен выглядеть так / grandParent / parent / child, в случае нажатия родительской категории он должен генерировать / grandparent / parent, и когда пользователь нажимает на продукт, я хочу объединить его URL-адрес с URL-адресом категории что-то вроде этого: / grandparent / parent / child / product_slug, не могли бы вы помочь мне с этим?
class ProductCategory(models.Model):
'''
product category model
'''
parent_category = models.ForeignKey(
'self',
verbose_name=_('Parent Category'),
related_name=('sub_categories'),
blank=True,
null=True,
on_delete=models.CASCADE
)
@property
def is_last_child(self):
'''
check whether current category is a parent for another category
'''
return self.sub_categories.count() == 0
@property
def is_root_category(self):
'''
Check wheter current category has no parent
'''
return self.parent_category is None
def get_absolute_url(self):
return reverse('productcategory', kwargs={'slug': self.slug})
Обновление: это URL-адреса из Urls.py
path('productcategory/<slug>/', ProductCategoryView.as_view(), name='productcategory'),
path('product/<str:slug>/', ProductView.as_view(), name='product'),