+
+ Comments
+ {% for comment in post.comments.all %}
+ {{ comment.author.username }} says: {{ comment.content }}
+ {% endfor %}
+ Add a comment
+
{% endblock %}
\ No newline at end of file
diff --git a/1_blog/post/urls.py b/1_blog/post/urls.py
index ad55a0f..e5d6e93 100644
--- a/1_blog/post/urls.py
+++ b/1_blog/post/urls.py
@@ -1,12 +1,11 @@
-#coding=utf-8
-
from django.urls import path, re_path
from . import views # 确保从当前目录导入views模块,前面的import语句有误
urlpatterns = [
- path('', views.queryAll, name='home'),
- re_path(r'^page/(?P\d+)$', views.queryAll, name='pagination'),
- re_path(r'^post/(?P\d+)$', views.detail, name='post_detail'),
- re_path(r'^category/(?P\d+)$', views.queryPostByCid, name='category_posts'),
- re_path(r'^archive/(?P\d+)/(?P\d+)$', views.queryPostByCreated, name='archive'),
-]
\ No newline at end of file
+ path('', views.queryAll, name='home'), # 首页
+ re_path(r'^page/(?P\d+)$', views.queryAll, name='pagination'), # 分页
+ re_path(r'^post/(?P\d+)$', views.detail, name='post_detail'), # 帖子详情
+ re_path(r'^category/(?P\d+)$', views.queryPostByCid, name='category_posts'), # 分类
+ re_path(r'^archive/(?P\d+)/(?P\d+)$', views.queryPostByCreated, name='archive'), # 归档
+ path('/comments/', views.post_detail, name='post_comments'), # 帖单评论页
+]
diff --git a/1_blog/post/views.py b/1_blog/post/views.py
index 8c451c7..ebf3267 100644
--- a/1_blog/post/views.py
+++ b/1_blog/post/views.py
@@ -1,26 +1,27 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
+import math
+
+from django.core.paginator import Paginator
+from django.shortcuts import get_object_or_404, redirect, render
-from django.shortcuts import render
# Create your views here.
-#渲染主页面
+# 渲染主页面
from post.models import Post
-from django.core.paginator import Paginator
-import math
-def queryAll(request,num=1):
+from django import forms
+
+
+def queryAll(request, num=1):
num = int(num)
#获取所有帖子信息
postList = Post.objects.all().order_by('-created')
#创建分页器对象
- pageObj = Paginator(postList,1)
+ pageObj = Paginator(postList, 1)
#获取当前页的数据
perPageList = pageObj.page(num)
-
#生成页码数列表
# 每页开始页码
begin = (num - int(math.ceil(10.0 / 2)))
@@ -39,27 +40,51 @@ def queryAll(request,num=1):
pageList = range(begin, end + 1)
+ return render(request, 'index.html', {'postList': perPageList, 'pageList': pageList, 'currentNum': num})
- return render(request,'index.html',{'postList':perPageList,'pageList':pageList,'currentNum':num})
#阅读全文功能
-def detail(request,postid):
+def detail(request, postid):
postid = int(postid)
#根据postid查询帖子的详情信息
post = Post.objects.get(id=postid)
- return render(request,'detail.html',{'post':post})
-#根据类别id查询所有帖子
-def queryPostByCid(request,cid):
+ return render(request, 'detail.html', {'post': post})
+
+#根据类别id查询所有帖子
+def queryPostByCid(request, cid):
postList = Post.objects.filter(category_id=cid)
# Post.objects.filter(category__id=cid)
- return render(request,'article.html',{'postList':postList})
+ return render(request, 'article.html', {'postList': postList})
+
#根据发帖时间查询所有帖子
-def queryPostByCreated(request,year,month):
+def queryPostByCreated(request, year, month):
+ postList = Post.objects.filter(created__year=year, created__month=month)
+ return render(request, 'article.html', {'postList': postList})
+
+
+def post_detail(request, pk):
+ post = get_object_or_404(Post, pk=pk)
+ if request.method == 'POST':
+ form = CommentForm(request.POST)
+ if form.is_valid():
+ comment = form.save(commit=False)
+ comment.post = post
+ comment.save()
+ return redirect('detail', pk=post.pk) # 重定向到文章详情页
+ else:
+ form = CommentForm()
+
+ context = {
+ 'post': post,
+ 'form': form,
+ }
+ return render(request, 'detail.html', context)
+
- postList = Post.objects.filter(created__year=year,created__month=month)
- return render(request,'article.html',{'postList':postList})
\ No newline at end of file
+class CommentForm(forms.Form):
+ content = forms.CharField(widget=forms.Textarea(attrs={'rows': '4', 'cols': '60'}))
diff --git a/1_blog/templates/search/__init__.py b/1_blog/templates/search/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/1_blog/templates/search/indexes/post/post_text.txt b/1_blog/templates/search/indexes/post/post_text.txt
deleted file mode 100644
index 9223bc5..0000000
--- a/1_blog/templates/search/indexes/post/post_text.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-{{object.title}}
-{{object.content}}
\ No newline at end of file