def articles_list(request, theme_slug, category_slug):
category_list = get_list_or_404(Category.objects.order_by('name'), parent__slug=theme_slug, slug=category_slug)
articles = Article.objects.order_by('name')
context = {
# ...
}
return render(request, 'app/lyrics.html', context)
class Theme(models.Model):
name = models.CharField(max_length=50)
slug = models.SlugField(max_length=50)
class Category(models.Model):
parent = models.ForeignKey(Theme)
name = models.CharField(max_length=50)
slug = models.SlugField(max_length=50)
# ...
class Article(models.Model):
name = models.CharField(max_length=50, db_index=True)
parents = models.ManyToManyField(Category, related_name='rel')
slug = models.SlugField(max_length=50)
# ...
url(r'^(?P<category_slug>[-\w]+)/$', views.articles_list, name='articles_list'),