|
|
@ -1,18 +1,24 @@
|
|
|
|
from django.shortcuts import render
|
|
|
|
from django.shortcuts import render, redirect, reverse
|
|
|
|
from django.http import JsonResponse
|
|
|
|
from django.http.response import JsonResponse
|
|
|
|
from django.urls.base import reverse_lazy
|
|
|
|
from django.urls.base import reverse_lazy
|
|
|
|
from django.contrib.auth.decorators import login_required
|
|
|
|
from django.contrib.auth.decorators import login_required
|
|
|
|
from django.views.decorators.http import require_http_methods
|
|
|
|
from django.views.decorators.http import require_http_methods, require_POST, require_GET
|
|
|
|
from .models import BlogCategory, Blog, BlogComment
|
|
|
|
from .models import BlogCategory, Blog, BlogComment
|
|
|
|
from .forms import PubBlogForm
|
|
|
|
from .forms import PubBlogForm
|
|
|
|
|
|
|
|
from django.db.models import Q
|
|
|
|
|
|
|
|
|
|
|
|
# Create your views here.
|
|
|
|
# Create your views here.
|
|
|
|
def index(request):
|
|
|
|
def index(request):
|
|
|
|
return render(request, 'index.html')
|
|
|
|
blogs = Blog.objects.all()
|
|
|
|
|
|
|
|
return render(request, 'index.html', context={'blogs': blogs})
|
|
|
|
|
|
|
|
|
|
|
|
def blog_detail(request, blog_id):
|
|
|
|
def blog_detail(request, blog_id):
|
|
|
|
return render(request,'blog_detail.html')
|
|
|
|
try:
|
|
|
|
|
|
|
|
blog = Blog.objects.get(pk=blog_id)
|
|
|
|
|
|
|
|
except Exception as e:
|
|
|
|
|
|
|
|
blog = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return render(request,'blog_detail.html', context={'blog':blog})
|
|
|
|
|
|
|
|
|
|
|
|
@require_http_methods(['GET', 'POST'])
|
|
|
|
@require_http_methods(['GET', 'POST'])
|
|
|
|
@login_required()
|
|
|
|
@login_required()
|
|
|
@ -26,5 +32,25 @@ def pub_blog(request):
|
|
|
|
title = form.cleaned_data.get('title')
|
|
|
|
title = form.cleaned_data.get('title')
|
|
|
|
content = form.cleaned_data.get('content')
|
|
|
|
content = form.cleaned_data.get('content')
|
|
|
|
category_id = form.cleaned_data.get('category')
|
|
|
|
category_id = form.cleaned_data.get('category')
|
|
|
|
Blog.objects.create(title=title, content=content, category_id=category_id, author=request.user)
|
|
|
|
blog = Blog.objects.create(title=title, content=content, category_id=category_id, author=request.user)
|
|
|
|
return JsonResponse({"code":200, "message":"参数错误!"})
|
|
|
|
return JsonResponse({"code": 200, "message": "博客发布成功!", "data": {"blog_id": blog.id}})
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
print(form.errors)
|
|
|
|
|
|
|
|
return JsonResponse({'code': 400, "message": "参数错误!"})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@require_POST
|
|
|
|
|
|
|
|
@login_required()
|
|
|
|
|
|
|
|
def pub_comment(request):
|
|
|
|
|
|
|
|
blog_id = request.POST.get('blog_id')
|
|
|
|
|
|
|
|
content = request.POST.get('content')
|
|
|
|
|
|
|
|
BlogComment.objects.create(content=content, blog_id=blog_id, author=request.user)
|
|
|
|
|
|
|
|
# 重新加载博客详情页
|
|
|
|
|
|
|
|
return redirect(reverse("blog:blog_detail", kwargs={"blog_id": blog_id}))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@require_GET
|
|
|
|
|
|
|
|
def search(request):
|
|
|
|
|
|
|
|
q = request.GET.get('q')
|
|
|
|
|
|
|
|
blogs = Blog.objects.filter(Q(title__icontains=q)|Q(content__icontains=q)).all()
|
|
|
|
|
|
|
|
return render(request, 'index.html', context={"blogs": blogs})
|