Джанго - как выводить вложенные url?
Доброго времени суток!
Не могу разобраться, как вывести вложенный url - категория/и относящийся к ней пост?
Есть категории с Slug и относящиеся к ним посты с Slug.
Нужно чтоб получилось:
/lettuce coat(slug категории)/salad-coat-without-mayonnaise (slug поста категории).
Заранее благодарю за помощь!
Models
class category(models.Model):
slug = models.SlugField(max_length=266, unique=True, db_index=True, verbose_name=('URL'))
description = models.TextField(max_length=700, verbose_name=('Описание'), blank=False)
def __str__(self):
return self.slug
def get_absolute_url(self):
return reverse('category', kwargs={'category_slug': self.slug})
class post(models.Model):
slug = models.SlugField(max_length=266, unique=True, db_index=True, verbose_name=('URL'))
description = models.TextField(max_length=700, verbose_name=('Описание'), blank=False)
cat = models.ForeignKey('category', on_delete=models.PROTECT, null=True)
def __str__(self):
return self.slug
def get_absolute_url(self):
return reverse('post', kwargs={'post_slug': self.slug})
Views
def ContentСategory(request, category_slug):
category = get_list_or_404(post, slug=category_slug)
category=category.objects.filter(slug=category_slug)
return render(request, 'content/category.html',{'category':category})
def ContentPost(request, post_slug):
post = get_list_or_404(post, slug=post_slug)
post=post.objects.filter(slug=post_slug)
return render(request, 'content/post.html',{'post':post})
URLS
urlpatterns = [
path('', views.ContentHome.as_view(), name='homepage'),
path('<slug:category_slug>', views.ContentCategory, name='category'),
path('<slug:category_slug>/<slug:post_slug>', views.ContentPost, name='post'),
]
Источник: Stack Overflow на русском