def ajax_reply(request, comment_id): """ajax请求回复评论""" reply_form = ReplyForm(request.POST) if reply_form.is_valid(): reply_form.instance.comment_id = comment_id reply_form.instance.user_id = request.session['user']['id'] reply_form.save() # 文章的评论数+1 comment = Comment.objects.get(id=comment_id) Article.objects.filter(id=comment.article_id).update( comment_count=F('comment_count') + 1) # 创建回复通知 article = Article.objects.get(id=comment.article_id) article_title = article.title if len(article_title) > 10: article_title = article_title[:7] + '...' comment_content = comment.content if len(comment_content) > 10: comment_content = comment_content[:7] + '...' reply_content = reply_form.instance.content if len(reply_content) > 10: reply_content = reply_content[:7] + '...' context = { 'article_id': article.id, 'article_title': article_title, 'comment_id': comment.id, 'comment_content': comment_content, 'reply_content': reply_content } Notice.objects.create( sender_id=request.session['user']['id'], receiver_id=article.user.id, type=NoticeType.objects.get(name=NoticeType.REPLY_NOTICE), context=json.dumps(context)) return HttpResponse('true')
def post(self, request): rf = ReplyForm(request.POST) comment = Comment.objects.get(id=request.POST['comment']) user = User.objects.get(id=request.POST['author']) if user.username == request.user.username: if rf.is_valid(): rf.save() return redirect('post_details', slug=comment.post.slug)
def message(request): errors = [] if request.method == 'POST': form = ReplyForm(request.POST) if form.is_valid(): cd = form.cleaned_data post, reply = Reply.insert_from_form(cd) return HttpResponseRedirect( post.get_abs_url()) else: pass else: return render(request, 'message_error.html', {'errors': errors})
def test_reply_form_is_not_valid_when_blank_data(self): reply_form = ReplyForm({}) self.assertFalse(reply_form.is_valid()) reply_form = CommentForm({ "name": "Someone", }) self.assertFalse(reply_form.is_valid()) self.assertEqual( reply_form.errors, { 'email': ['This field is required.'], 'comment': ['This field is required.'], })
def test_reply_form_is_valid_when_valid_data(self): comment = self.comment reply_form = ReplyForm({ "name": "Someone", "email": "*****@*****.**", "comment": "I am a reply", "parent_comment": comment }) self.assertTrue(reply_form.is_valid()) reply = reply_form.save() self.assertEqual(reply.name, "Someone") self.assertEqual(reply.email, "*****@*****.**") self.assertEqual(reply.comment, "I am a reply")
def reply_new(request, question_pk): question = get_object_or_404(Question, pk=question_pk) if question.mentor.user != request.user: messages.warning(request, "담당멘토가 아닙니다") return redirect("blog:question_detail", question_pk) if request.method == "POST": form = ReplyForm(request.POST) if form.is_valid(): reply = form.save(commit=False) reply.question = question reply.save() return redirect("blog:question_detail", question_pk) else: form = ReplyForm() return render(request, "blog/reply_form.html", {"form": form})
def ajax_make_comment_view(request, *args, **kwargs): data = request.extra_data res_dict = {'status':''} if request.method == 'GET': return HttpResponse('forbidden') elif request.method == 'POST': comment_form = ReplyForm(request.POST) if comment_form.is_valid(): if not data.get('user_info').logined: make_comment(comment_form) res_dict['status'] = 'success' else: res_dict['status'] = u'you are author!' else: res_dict['status'] = comment_form.errors return HttpResponse(json.dumps(res_dict))
def reply_edit(request, question_pk, pk): question = get_object_or_404(Question, pk=question_pk) reply = get_object_or_404(Reply, pk=pk) if reply.question.mentor.user != request.user: messages.warning(request, "작성자가 아닙니다") return redirect("blog:question_detail", question_pk) if request.method == "POST": form = ReplyForm(instance=reply) if form.is_valid(): form.save() messages.info(request, "답변이 수정되었습니다.") return redirect("blog:question_detail", question_pk) else: form = ReplyForm(instance=reply) return render(request, "blog/reply_form.html", {"form": form})
def make_comment_view(request, *args, **kwargs): data = request.extra_data if request.method == 'GET': raise Http404 elif request.method == 'POST': if data.get('user_info').logined: return HttpResponse(u'你是作者,评论个毛!') comment_form = ReplyForm(request.POST) # 根据提交的数据是否合法重新渲染页面或者返回错误信息 if comment_form.is_valid(): make_comment(comment_form) return HttpResponseRedirect(comment_form.cleaned_data['fnext']) else: remind = {} # 提示信息存储字典 errors = '' # 提示信息,提示表单有误 remind = {'info': '表单填写有误,请您确定填写正确哦 ^_^', 'button_name': '返回首页', 'url_to': settings.BLOG_ROOT_URL} return render_to_response('blog/login/remind.html', locals())
def reply(req,post_id): post = Post.objects.get(id=post_id) if req.method == "POST": urf = ReplyForm(req.POST) if urf.is_valid(): urf = urf.save(commit=False) print req.user urf.user = req.user urf.post = post urf.save() return redirect('/blog/%s/' % post.id) else: urf = ReplyForm() return render(req, 'reply.html',{'urf':urf})
def articles_view(request, *args, **kwargs): """read articles inclued articles reader and comment post function,if articles not found ,it raise a 404 error""" data = request.extra_data a_post = APost(int(kwargs.get('article_id', 0))) if request.method == 'GET': if not a_post.exist: raise Http404 # 检查文章状态是否为已发布 if a_post.post['status'].id == 2: return ( render_to_response( 'blog/read.html', locals(), context_instance=RequestContext(request)) ) elif a_post.post['status'].id == 1 and logined(request): return ( render_to_response( 'blog/read.html', locals(), context_instance=RequestContext(request)) ) else: raise Http404 elif request.method == 'POST': if user_info.logined: return HttpResponse(u'你是作者,评论个毛!') else: comment_form = ReplyForm(request.POST) # 根据提交的数据是否合法重新渲染页面或者返回错误信息 if not comment_form.is_valid(): return render_to_response('blog/read.html', locals(), context_instance=RequestContext(request)) else: return HttpResponseRedirect(request.path)