首页 > 解决方案 > Django 按类别查看帖子

问题描述

我是 DJango 的新手,仍然了解视图和网址的工作原理。我试图在我的侧边栏中显示一个类别列表,以及让面包屑起作用。除非我转到 mysite/category/categoryItem/sub_categoryItem ,否则我无法正确显示面包屑,但即使它在列表中列出,我也无法让它拉起帖子。它只是一个空白页。这至少告诉我模板正在拉取侧边栏数据。

views.py
def show_category(request,hierarchy= None):
    category_slug = hierarchy.split('/')
    category_queryset = list(Category.objects.all())
    all_slugs = [ x.slug for x in category_queryset ]
    parent = None
    for slug in category_slug:
        if slug in all_slugs:
            parent = get_object_or_404(Category,slug=slug,parent=parent)
        else:
            instance = get_object_or_404(Post, slug=slug)
            breadcrumbs_link = instance.get_cat_list()
            category_name = [' '.join(i.split('/')[-1].split('-')) for i in breadcrumbs_link]
            breadcrumbs = zip(breadcrumbs_link, category_name)
            return render(request, "wiki/post_detail.html", {'instance':instance,'breadcrumbs':breadcrumbs})

    return render(request,"sidebar.html",{'post_set':parent.post_set.all(),'sub_categories':parent.children.all()})

def post_detail(request,slug=None):
    post = get_object_or_404(Post,slug=slug)
    return render(request,"wiki/post_detail.html",{ 'post':post})

def post_list(request, slug=None):
    posts = Post.objects.all()
    return render(request,"wiki/postlist.html",{ 'posts':posts})`enter code here`

urls.py

urlpatterns = [
    url(r'^wiki/$',  views.post_list , name='wiki'),
    url(r'^(?P<slug>[\w-]+)/$', views.post_detail, name="postdetail"),
    url(r'^category/(?P<hierarchy>.+)/$', views.show_category, name='category'),
]

标签: pythondjango-modelsdjango-viewsdjango-urls

解决方案


推荐阅读