开发者

Some problems with the confirmation of the urls in Django views

My models:

Story:

categories = models.ManyToMa开发者_JS百科nyField(Category)

Category: name | slug

My urls:

(r'^(?P<cat_slug>.*)/$', 'news.views.archive_category'),

And in views, I use:

def archive_category(request, cat_slug):
    entry = News.objects.get( categories__slug=cat_slug )
    return render_to_response('news_archive_category.html', {'entry':entry, })

It has something wrong if I have a story of two or more category. Please help me. Many thanks!


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

edited after comment


What do you want to happen in this circumstance? Are you trying to show a list of all the entries in a category, or just one?

News.objects.get() will always get a single item, or raise an exception if there are more than one matching the criteria. Either you should use filter() instead, passing a QuerySet to the template, so you'll need to iterate through; or, add a criteria to your urlconf so that you get the specific entry slug as well, so you only get one object.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜