def tagControl(request): template = 'main_article/tagControl.html' tags = Tag.objects.all() content = request.POST.get('content') if request.method == 'GET': context = { 'tags': tags, 'articlecount': tags.__len__(), 'page_title': '标签控制' } return render(request, template, context) #post if content == '': context = {'tags': tags} messages.error(request, '不能为空') return render(request, template, context) try: content2 = str(Tag.objects.get(name=content)) if content2 == content: messages.error(request, '已存在') except Tag.DoesNotExist: tagform = Tag() tagform.name = content tagform.save() create_action(request.user, '添加了标签', tagform) messages.success(request, '新增成功') return redirect('main_article:tagControl')
def tagDelete(request, tagId): tag_delete = Tag.objects.get(id=tagId) tag_delete_str = str(Tag.objects.get(id=tagId)) tag_delete.delete() create_action(request.user, '删除了标签' + '-' + tag_delete_str, tag_delete) messages.success(request, '已删除:' + tag_delete_str) return redirect('main_article:tagControl')
def guestbook_Post_Update(request, postId): get_post = get_object_or_404(Guestbook_Post, id=postId) if request.method == 'GET': template = 'guestbook/PostCreateUpdate.html' update_post = PostForm(instance=get_post) return render( request, template, { 'postform': update_post, 'post': get_post, 'guestbook_posts_session': 'guestbook' }) #Post post_update = PostForm(request.POST, instance=get_post) if not post_update.is_valid(): return render(request, template, { 'postform': post_update, 'post': get_post }) post_update_Form = post_update.save(commit=False) post_update_Form.upDateTime = timezone.now() post_update_Form.save() post_update.save_m2m() create_action(request.user, '修改了留言', post_update_Form) messages.success(request, '文章已修改') return redirect('guestbook:postRead', postId)
def guestbook_Post_Create(request): template = 'guestbook/PostCreateUpdate.html' if request.method == 'GET': return render( request, template, { 'postform': PostForm(), 'guestbook_posts': 'cut-articleCreate-link', 'guestbook_posts_session': 'guestbook' }) #Post postform = PostForm(request.POST) if not postform.is_valid(): return render(request, template, {'postform': postform}) author_id = request.user form = postform.save(commit=False) form.author = author_id form.upDateTime = timezone.now() form.save() #save tags postform.save_m2m() #action create create_action(request.user, '发表了留言', form) messages.success(request, '文章已新增') return redirect('guestbook:posts')
def guestbook_Post_Delete(request, postId): post_delete = get_object_or_404(Guestbook_Post, id=postId) post_delete.delete() post_delete_str = str(post_delete) create_action(request.user, '删除了留言-' + post_delete_str, post_delete) messages.success(request, '留言已删除') return redirect('guestbook:posts')
def categoryDelete(request, categoryId): # POST category = get_object_or_404(Category, id=categoryId) category_str = str(category) category.delete() create_action(request.user, '删除了分类' + '-' + category_str, category) messages.success(request, '板块已删除') return redirect('main_article:categoryControl')
def categoryControl(request): template = 'main_article/categoryControl.html' category = Category.objects.all() guestbook_category = Guestbook_Category.objects.all() if request.method == 'GET': context = { 'categorys': category, 'guestbook_categorys': guestbook_category, 'articlecount': category.__len__(), 'page_title': '分类控制' } return render(request, template, context) # POST content = request.POST.get('content') guestbook_content = request.POST.get('guestbook_content') # print('主页分类:'+str(content)) # print('留言分类:'+str(guestbook_content)) if content == '' or guestbook_content == '': context = { 'categorys': category, 'guestbook_categorys': guestbook_category, 'articlecount': category.__len__() } messages.error(request, '不能为空') return render(request, template, context) try: if not content == None: #print(content) content2 = str(Category.objects.get(name=content)) if content2 == content: messages.error(request, '已存在') except Category.DoesNotExist: categoryform = Category() categoryform.name = content categoryform.save() create_action(request.user, '添加了分类', categoryform) messages.success(request, '新增成功') # 留言分类 try: if not guestbook_content == None: #print(guestbook_content) content2_guestbook = str( Guestbook_Category.objects.get(name=guestbook_content)) if content2_guestbook == guestbook_content: messages.error(request, '已存在') except Guestbook_Category.DoesNotExist: guestbook_category_form = Guestbook_Category() guestbook_category_form.name = guestbook_content guestbook_category_form.save() messages.success(request, '新增成功') return redirect('main_article:categoryControl')
def articleDelete(request, articleId): if request.method == 'GET': return article(request) # POST articleToDelete = get_object_or_404(Article, id=articleId) articleToDelete_str = str(articleToDelete) articleToDelete.delete() create_action(request.user, '删除了文章' + '-' + articleToDelete_str, articleToDelete) messages.success(request, '文章已刪除') return redirect('main_article:article')
def g_categoryUpdate(request, g_categoryId): template = 'main_article/categoryUpdate.html' category = get_object_or_404(Guestbook_Category, id=g_categoryId) if request.method == 'GET': return render(request, template, {'category': category}) #POST content = request.POST.get('content') category.name = content category.save() create_action(request.user, '修改了分类', category) #print(content) messages.success(request, '板块已修改') return redirect('main_article:categoryControl')
def submit_comment(request, id): form = CommentForm(data=request.POST) # print(request.POST) if form.is_valid(): # print('success') new_comment = form.save(commit=False) new_comment.user = request.user new_comment.user_name = request.user.profile.nickname if request.user.profile.nickname else request.user #print(new_comment.user_name) new_comment.save() #action create create_action(request.user, '发表了评论', new_comment) location = "#c" + str(new_comment.id) return JsonResponse({'msg': 'success!', 'new_comment': location}) return JsonResponse({'msg': '评论出错!'})
def superlikes(request): #异步刷新(AJAX) article_id = request.POST.get('id') action = request.POST.get('action') if article_id and action: try: article = Article.objects.get(id=article_id) if action == 'like': article.superlikes.add(request.user) create_action(request.user, '点赞', article) else: article.superlikes.remove(request.user) return JsonResponse({'status': 'ok'}) except: pass return JsonResponse({'status': 'ko'}) '''
def user_follow(request): #异步刷新(AJAX) user_id = request.POST.get('id') action = request.POST.get('action') if user_id and action: user = Userprofile.objects.get(id=user_id) try: if action == 'follow': Contact.objects.get_or_create(from_user=request.user.profile, to_user=user) create_action(request.user, '关注', user) else: Contact.objects.filter(from_user=request.user.profile, to_user=user).delete() return JsonResponse({'status': 'ok'}) except Userprofile.DoesNotExist: return JsonResponse({'status': 'ko'}) return JsonResponse({'status': 'ko'})
def like(request): comment_id = request.POST.get('id') action = request.POST.get('action') if comment_id and action: try: comment = Comment.objects.get(id=comment_id) obj, created = Like.objects.get_or_create(user=request.user, comment=comment) if action == 'like': if not created: obj.status = True obj.save() #print(obj) create_action(request.user, '点赞了评论', obj) if action == 'cancel-like' or action == 'cancel-dislike': obj.delete() if action == 'dislike': obj.status = False obj.save() return JsonResponse({'msg': 'OK'}) except Comment.DoesNotExist: return JsonResponse({"msg": "KO"}) return JsonResponse({"msg": "KO"})
def articleUpdate(request, articleId): articleToUpdate = get_object_or_404(Article, id=articleId) template = 'main_article/articlecreateupdate.html' #print(articleToUpdate.author) if request.method == 'GET': if not request.user == articleToUpdate.author: messages.error(request, '你没有权限') return redirect('main_article:article') articleForm = ArticleForm(instance=articleToUpdate) return render( request, template, { 'articleForm': articleForm, 'article': articleToUpdate, 'tags': Tag.objects.all(), 'page_title': '修改博客' }) # POST articleForm = ArticleForm(request.POST, instance=articleToUpdate) # print(articleForm) if not articleForm.is_valid(): return render(request, template, { 'articleForm': articleForm, 'article': articleToUpdate }) articleUpdateForm = articleForm.save(commit=False) articleUpdateForm.upDateTime = timezone.now() articleUpdateForm.excerpt = strip_tags(articleUpdateForm.content)[:200] articleUpdateForm.save() articleForm.save_m2m() create_action(request.user, '修改了文章', articleUpdateForm) messages.success(request, '文章已修改') return redirect('main_article:articleRead', articleId=articleId)
def articleCreate(request): template = 'main_article/articlecreateupdate.html' if request.method == 'GET': return render( request, template, { 'articleForm': ArticleForm(), 'tags': Tag.objects.all(), 'page_title': '新增博客' }) # POST articleForm = ArticleForm(request.POST) if not articleForm.is_valid(): return render(request, template, {'articleForm': articleForm}) # 从页面获取user信息 author_id = request.user articleform = articleForm.save(commit=False) articleform.author = author_id articleform.upDateTime = timezone.now() articleform.save() articleForm.save_m2m() ''' 动作描述 ''' create_action(request.user, '发表了文章', articleform) # add tags ''' tag_name =Tag.objects.get(id=request.POST.get('tag')) article_title = request.POST.get('title') article_add_tag = Article.objects.get(title = article_title) article_add_tag.tag.add(tag_name) article_add_tag.save() ''' messages.success(request, '文章已新增') return redirect('main_article:article')
def userProfile(request): ''' UserProfile setting ''' # user_to_read = Userprofile.objects.get(id=userId) # user = User.objects.get(username=request.user) user_to_read = Userprofile.objects.get(user=request.user) template = 'main_article/UserProfile.html' if request.method == 'GET': user_articles = Article.objects.filter(author=request.user) user_comments = Comment.objects._mptt_filter( user=request.user).order_by('-submit_date') profileupdateform = UserprofileForm(instance=user_to_read) user_articles_count = user_articles.count() #右侧栏显示我发布的文章 myposts = Article.objects.filter( author=request.user).order_by('-read_num') #显示用户动态 #actions = Action.objects.filter(user=request.user) ##优化 加载速度提高50ms actions = Action.objects.filter(user=request.user).select_related( 'user', 'user__profile').prefetch_related('action') '''获取ct的obj类名来判断,满足不同的转址需求 for action in actions: print(action.get_ct_name()) ''' ''' pagination ''' paginator_articles = Paginator(user_articles, 10) #paginator_comments = Paginator(user_comments,5) page = request.GET.get('page') #print(user_articles.count()),采用分页设计,将无法使用.count()方法,需要重新生成对象 try: user_articles = paginator_articles.page(page) #user_comments = paginator_comments.page(page) except PageNotAnInteger: user_articles = paginator_articles.page(1) #user_comments = paginator_comments.page(1) except EmptyPage: if request.is_ajax(): return HttpResponse('') #user_comments = paginator_comments(paginator_comments.num_pages) context = { 'userprofileform': profileupdateform, 'userRead': user_to_read, 'user_articles': user_articles, 'user_comments': user_comments, 'user_articles_count': user_articles_count, 'userprofile': 'userprofile', 'myposts': myposts[0:5], 'myactions': actions[0:10], 'page_title': '个人信息' } if request.is_ajax(): template_list = 'main_article/user_articles_list_ajax.html' return render(request, template_list, {'user_articles': user_articles}) return render(request, template, context) #post #profileupdate = Userprofile.objects.get(user=userId) profileform = UserprofileForm(request.POST, request.FILES, instance=user_to_read) if not profileform.is_valid(): return render(request, template, { 'userprofileform': profileform, 'userRead': user_to_read }) profile = profileform.save(commit=False) profile.save() create_action(request.user, '修改了用户信息', profile) messages.success(request, '修改成功') return redirect('main_article:userProfile')