from blog.models import BlogEntry, BlogSection
from django.http import Http404, HttpResponse
+from django.shortcuts import render
from django.template import RequestContext, loader
from django.core.paginator import Paginator
from django.conf import settings
page = int(request.GET.get('page', 1))
except ValueError:
page = 1
- paginated_entries = paginator.page(page)
- pages = paginator.page_range
- t = loader.get_template("blog/blog_index.html")
- c = RequestContext(request,
- {
- "entries": paginated_entries.object_list,
- "title": settings.BLOG_TITLE,
- "page": page,
- "pages": pages,
- "paginated": 1,
- "has_next": paginated_entries.has_next(),
- "has_prev": paginated_entries.has_previous(),
- "next": page + 1,
- "prev": page - 1
- })
- return HttpResponse(t.render(c))
+ try:
+ paginated_entries = paginator.page(page)
+ pages = paginator.page_range
+ c = {
+ "entries": paginated_entries.object_list,
+ "title": settings.BLOG_TITLE,
+ "page": page,
+ "pages": pages,
+ "paginated": 1,
+ "has_more_than_one_page": (len(pages) > 1),
+ "has_next": paginated_entries.has_next(),
+ "has_prev": paginated_entries.has_previous(),
+ "next": page + 1,
+ "prev": page - 1
+ }
+ return render(request, 'blog/blog_index.html', c)
+ except:
+ raise Http404
else:
raise Http404
year = int(year)
month = int(month)
day = int(day)
- blog_entry = BlogEntry.objects.get(publish_date__year=year, publish_date__month=month, publish_date__day=day, slug__exact=slug)
- template_name = "blog/single_entry_%s.html" %(blog_entry.format,)
- t = loader.get_template(template_name)
- c = RequestContext(request,
- {
- "entry": blog_entry,
- "publish_date": blog_entry.publish_date
- }
- )
- return HttpResponse(t.render(c))
+ try:
+ blog_entry = BlogEntry.objects.get(publish_date__year=year, publish_date__month=month, publish_date__day=day, slug__exact=slug)
+ template_name = "blog/single_entry_%s.html" %(blog_entry.format,)
+ c = {
+ "entry": blog_entry,
+ "publish_date": blog_entry.publish_date
+ }
+ return render(request, template_name, c)
+ except:
+ raise Http404
+ else:
+ entries = BlogEntry.objects.all()
+ if year and month and day:
+ year = int(year)
+ month = int(month)
+ day = int(day)
+ entries = entries.filter(publish_date__year=year, publish_date__month=month, publish_date__day=day)
+ elif year and month:
+ year = int(year)
+ month = int(month)
+ entries = entries.filter(publish_date__year=year, publish_date__month=month)
+ elif year:
+ year = int(year)
+ entries = entries.filter(publish_date__year=year)
+ if entries:
+ entries = entries.order_by('-publish_date')
+ paginate_by=20
+ paginator = Paginator(entries, paginate_by)
+ try:
+ page = int(request.GET.get('page', 1))
+ except ValueError:
+ page = 1
+ try:
+ paginated_entries = paginator.page(page)
+ pages = paginator.page_range
+ c = {
+ "entries": paginated_entries.object_list,
+ "title": settings.BLOG_TITLE,
+ "page": page,
+ "pages": pages,
+ "paginated": 1,
+ "has_more_than_one_page": (len(pages) > 1),
+ "has_next": paginated_entries.has_next(),
+ "has_prev": paginated_entries.has_previous(),
+ "next": page + 1,
+ "prev": page - 1
+ }
+ return render(request, "blog/blog_index.html", c)
+ except:
+ raise Http404
+ else:
+ raise Http404