|
|
|
|
@ -13,32 +13,34 @@ from django.utils.safestring import mark_safe
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ArticleListView(ListView):
|
|
|
|
|
template_name = 'index.html'
|
|
|
|
|
# template_name属性用于指定使用哪个模板进行渲染
|
|
|
|
|
template_name = 'blog/index.html'
|
|
|
|
|
|
|
|
|
|
# context_object_name属性用于给上下文变量取名(在模板中使用该名字)
|
|
|
|
|
context_object_name = 'article_list'
|
|
|
|
|
|
|
|
|
|
def set_article_subbody(self, article_list):
|
|
|
|
|
for article in article_list:
|
|
|
|
|
article.body = article.body[0:settings.ARTICLE_SUB_LENGTH]
|
|
|
|
|
return article_list
|
|
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
|
self.page_description = ''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class IndexView(ArticleListView):
|
|
|
|
|
# template_name属性用于指定使用哪个模板进行渲染
|
|
|
|
|
# template_name = 'index.html'
|
|
|
|
|
|
|
|
|
|
# context_object_name属性用于给上下文变量取名(在模板中使用该名字)
|
|
|
|
|
# context_object_name = 'article_list'
|
|
|
|
|
|
|
|
|
|
def get_queryset(self):
|
|
|
|
|
article_list = Article.objects.filter(status='p')
|
|
|
|
|
|
|
|
|
|
for article in article_list:
|
|
|
|
|
article.body = article.body[0:settings.ARTICLE_SUB_LENGTH]
|
|
|
|
|
# article.body = markdown2.markdown(article.body)
|
|
|
|
|
# for article in article_list:
|
|
|
|
|
# article.body = article.body[0:settings.ARTICLE_SUB_LENGTH]
|
|
|
|
|
# # article.body = markdown2.markdown(article.body)
|
|
|
|
|
|
|
|
|
|
return article_list
|
|
|
|
|
return self.set_article_subbody(article_list)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ArticleDetailView(DetailView):
|
|
|
|
|
template_name = 'articledetail.html'
|
|
|
|
|
template_name = 'blog/articledetail.html'
|
|
|
|
|
model = Article
|
|
|
|
|
pk_url_kwarg = 'article_id'
|
|
|
|
|
context_object_name = "article"
|
|
|
|
|
@ -58,12 +60,12 @@ class CategoryDetailView(ArticleListView):
|
|
|
|
|
def get_queryset(self):
|
|
|
|
|
categoryname = self.kwargs['category_name']
|
|
|
|
|
# print(categoryname)
|
|
|
|
|
self.page_description = '分类目录归档: %s '
|
|
|
|
|
self.page_description = '分类目录归档: %s ' % categoryname
|
|
|
|
|
article_list = Article.objects.filter(category__name=categoryname, status='p')
|
|
|
|
|
return article_list
|
|
|
|
|
return self.set_article_subbody(article_list)
|
|
|
|
|
|
|
|
|
|
def get_context_data(self, **kwargs):
|
|
|
|
|
# 增加额外的数据,这里返回一个文章分类,以字典的形式
|
|
|
|
|
# 增加额外的数据
|
|
|
|
|
kwargs['page_description'] = self.page_description
|
|
|
|
|
return super(CategoryDetailView, self).get_context_data(**kwargs)
|
|
|
|
|
|
|
|
|
|
@ -74,8 +76,31 @@ class AuthorDetailView(ArticleListView):
|
|
|
|
|
|
|
|
|
|
self.page_description = '作者文章归档: %s ' % author_name
|
|
|
|
|
article_list = Article.objects.filter(author__username=author_name)
|
|
|
|
|
return article_list
|
|
|
|
|
return self.set_article_subbody(article_list)
|
|
|
|
|
|
|
|
|
|
def get_context_data(self, **kwargs):
|
|
|
|
|
kwargs['page_description'] = self.page_description
|
|
|
|
|
return super(AuthorDetailView, self).get_context_data(**kwargs)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TagListView(ListView):
|
|
|
|
|
template_name = ''
|
|
|
|
|
context_object_name = 'tag_list'
|
|
|
|
|
|
|
|
|
|
def get_queryset(self):
|
|
|
|
|
tags_list = []
|
|
|
|
|
tags = Tag.objects.all()
|
|
|
|
|
for t in tags:
|
|
|
|
|
t.article_set.count()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TagDetailView(ArticleListView):
|
|
|
|
|
def get_queryset(self):
|
|
|
|
|
tag_name = self.kwargs['tag_name']
|
|
|
|
|
self.page_description = '分类标签: %s ' % tag_name
|
|
|
|
|
article_list = Article.objects.filter(tags__name=tag_name)
|
|
|
|
|
return self.set_article_subbody(article_list)
|
|
|
|
|
|
|
|
|
|
def get_context_data(self, **kwargs):
|
|
|
|
|
kwargs['page_description'] = self.page_description
|
|
|
|
|
return super(TagDetailView, self).get_context_data(**kwargs)
|
|
|
|
|
|