diff --git a/categories/views.py b/categories/views.py index 9d5d383d..51d9299a 100644 --- a/categories/views.py +++ b/categories/views.py @@ -20,15 +20,14 @@ def category_detail(request, path, template_name='categories/category_detail.html', extra_context={}): path_items = path.strip('/').split('/') - if len(path_items) >= 2: - category = get_object_or_404(Category, - slug__iexact=path_items[-1], - level=len(path_items) - 1, - parent__slug__iexact=path_items[-2]) - else: + categories = [] + parent = None + for slug in path_items: category = get_object_or_404(Category, - slug__iexact=path_items[-1], - level=len(path_items) - 1) + slug__iexact=slug, + parent=parent) + categories.append(category) + parent = categories[-1] templates = [] while path_items: @@ -44,6 +43,11 @@ def category_detail(request, path, def get_category_for_path(path, queryset=Category.objects.all()): + path_items = path.strip('/').split('/') + for slug in path_items: + queryset = queryset.filter( + slug__iexact=slug) + """ path_items = path.strip('/').split('/') if len(path_items) >= 2: queryset = queryset.filter( @@ -54,6 +58,7 @@ def get_category_for_path(path, queryset=Category.objects.all()): queryset = queryset.filter( slug__iexact=path_items[-1], level=len(path_items) - 1) + """ return queryset.get()