Ejemplo n.º 1
0
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')
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
    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.'],
            })
Ejemplo n.º 4
0
    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")