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 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 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 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})