You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.4 KiB
97 lines
2.4 KiB
import math
|
|
|
|
from django.core.paginator import Paginator
|
|
from django.shortcuts import get_object_or_404, redirect, render
|
|
|
|
# Create your views here.
|
|
# 渲染主页面
|
|
from post.models import Post, Comment
|
|
|
|
from django import forms
|
|
|
|
# 1111111111111111111111111111111111111111
|
|
from django.forms import ModelForm
|
|
from .models import Comment # 假设Comment是你的评论模型
|
|
|
|
|
|
class CommentForm(ModelForm):
|
|
class Meta:
|
|
model = Comment
|
|
fields = '__all__'
|
|
|
|
|
|
def queryAll(request, num=1):
|
|
num = int(num)
|
|
|
|
#获取所有帖子信息
|
|
postList = Post.objects.all().order_by('-created')
|
|
|
|
#创建分页器对象
|
|
pageObj = Paginator(postList, 1)
|
|
|
|
#获取当前页的数据
|
|
perPageList = pageObj.page(num)
|
|
|
|
#生成页码数列表
|
|
# 每页开始页码
|
|
begin = (num - int(math.ceil(10.0 / 2)))
|
|
if begin < 1:
|
|
begin = 1
|
|
|
|
# 每页结束页码
|
|
end = begin + 9
|
|
if end > pageObj.num_pages:
|
|
end = pageObj.num_pages
|
|
|
|
if end <= 10:
|
|
begin = 1
|
|
else:
|
|
begin = end - 9
|
|
|
|
pageList = range(begin, end + 1)
|
|
|
|
return render(request, 'index.html', {'postList': perPageList, 'pageList': pageList, 'currentNum': num})
|
|
|
|
|
|
#阅读全文功能
|
|
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):
|
|
postList = Post.objects.filter(category_id=cid)
|
|
# Post.objects.filter(category__id=cid)
|
|
|
|
return render(request, 'article.html', {'postList': postList})
|
|
|
|
|
|
#根据发帖时间查询所有帖子
|
|
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
|
|
form.save()
|
|
return redirect('post_comments', pk=post.pk) # 重定向到文章详情页
|
|
else:
|
|
form = CommentForm()
|
|
|
|
context = {
|
|
'post': post,
|
|
'form': form,
|
|
}
|
|
return render(request, 'detail.html', context)
|