def blog_post_list(request, tag=None, year=None, month=None, username=None, category=None, template="blog/blog_post_list.html"): """ Display a list of blog posts. """ blog_posts = BlogPost.objects.published(for_user=request.user).annotate( num_comments=Count("comments")) if tag is not None: tag = get_object_or_404(Keyword, slug=tag) blog_posts = blog_posts.filter(keywords=tag) if year is not None: blog_posts = blog_posts.filter(publish_date__year=year) if month is not None: blog_posts = blog_posts.filter(publish_date__month=month) month = month_name[int(month)] if category is not None: category = get_object_or_404(BlogCategory, slug=category) blog_posts = blog_posts.filter(category=category) user = None if username is not None: user = get_object_or_404(User, username=username) blog_posts = blog_posts.filter(user=user) blog_posts = paginate(blog_posts, request.GET.get("page", 1), blog_settings.BLOG_POST_PER_PAGE, blog_settings.BLOG_POST_MAX_PAGING_LINKS) context = {"blog_posts": blog_posts, "year": year, "month": month, "tag": tag, "category": category, "user": user, "use_disqus": use_disqus} return render_to_response(template, context, RequestContext(request))
def search(request, template="search_results.html"): """ Display search results. """ query = request.GET.get("q", "") results = Displayable.objects.search(query) results = paginate(results, request.GET.get("page", 1), SEARCH_PER_PAGE, SEARCH_MAX_PAGING_LINKS) context = {"query": query, "results": results} return render_to_response(template, context, RequestContext(request))