mirror of
https://github.com/kennethreitz-archive/django-wordpress.git
synced 2026-06-05 23:50:20 +00:00
51 lines
2.1 KiB
Python
51 lines
2.1 KiB
Python
from django.conf import settings
|
|
from django.http import HttpResponseRedirect
|
|
from django.shortcuts import render_to_response
|
|
from django.views.generic import list_detail, date_based
|
|
from wordpress.models import Post
|
|
|
|
PER_PAGE = getattr(settings, 'WP_PER_PAGE', 10)
|
|
|
|
TAXONOMIES = {
|
|
'term': 'post_tag',
|
|
'category': 'category',
|
|
'link_category': 'link_category',
|
|
}
|
|
|
|
def object_detail(request, year, month, day, slug):
|
|
return date_based.object_detail(request, queryset=Post.objects.published(),
|
|
date_field='post_date', year=year, month=month, month_format="%m",
|
|
day=day, slug=slug, template_object_name='post', allow_future=True)
|
|
|
|
def archive_day(request, year, month, day):
|
|
return date_based.archive_day(request, queryset=Post.objects.published(),
|
|
date_field='post_date', year=year, month=month, month_format="%m",
|
|
day=day, template_object_name='post')
|
|
|
|
def archive_month(request, year, month):
|
|
return date_based.archive_month(request, queryset=Post.objects.published(),
|
|
date_field='post_date', year=year, month=month, month_format="%m",
|
|
template_object_name='post')
|
|
|
|
def archive_year(request, year):
|
|
return date_based.archive_year(request, queryset=Post.objects.published(),
|
|
date_field='post_date', year=year)
|
|
|
|
def archive_index(request):
|
|
p = request.GET.get('p', None)
|
|
if p:
|
|
post = Post.objects.get(pk=p)
|
|
return HttpResponseRedirect(post.get_absolute_url())
|
|
posts = Post.objects.published().select_related()
|
|
return list_detail.object_list(request, queryset=posts,
|
|
paginate_by=10, template_name='wordpress/post_archive.html',
|
|
template_object_name='post', allow_empty=True)
|
|
|
|
def taxonomy(request, taxonomy, term):
|
|
taxonomy = TAXONOMIES.get(taxonomy, None)
|
|
if taxonomy:
|
|
posts = Post.objects.term(term, taxonomy=taxonomy).select_related()
|
|
return list_detail.object_list(request, queryset=posts,
|
|
paginate_by=10, template_name='wordpress/post_term.html',
|
|
template_object_name='post', allow_empty=True,
|
|
extra_context={'term': term}) |