我的模特:
故事:
categories = models.ManyToManyField(Category)
类别:名称|蛞蝓
我的网址:
(r'^(?P<cat_slug>.*)/$', 'news.views.archive_category'),
在观看次数中,我使用:
def archive_category(request, cat_slug):
entry = News.objects.get( categories__slug=cat_slug )
return render_to_response('news_archive_category.html', {'entry':entry, })
如果我有两个或更多类别的故事,那就错了。请帮我。非常感谢!
答案 0 :(得分:0)
在这种情况下你想要发生什么?您是要尝试显示某个类别中所有条目的列表,还是只显示一个?
News.objects.get()
将始终获取单个项目,或者如果有多个匹配条件,则引发异常。您应该使用filter()
代替,将QuerySet传递给模板,因此您需要迭代;或者,在urlconf中添加一个条件,以便获得特定的条目slug,这样你只能得到一个对象。
答案 1 :(得分:0)
category = Category.objects.filter(slug=cat_slug)#get the category requested
#now get all the entries which have that category
entries = News.objects.filter(categories__in=category)#because of the many2many use __in
在评论后编辑