首页 > 解决方案 > 如何将评论对象传递给django中的回复表单

问题描述

我找不到将评论模型传递给 jQuery 回复表单的方法。github上的代码: github。片段代码如下。

我有两个模型:

User = settings.AUTH_USER_MODEL

class Comment(models.Model):
    user        = models.ForeignKey(User, on_delete=models.CASCADE)
    content     = models.TextField()
    timestamp   = models.DateTimeField(auto_now_add=True)


class Reply(models.Model):
    user        = models.ForeignKey(User, on_delete=models.CASCADE)
    comment     = models.ForeignKey(Comment, on_delete=models.CASCADE)
    content     = models.TextField()
    timestamp   = models.DateTimeField(auto_now_add=True)

我通过 jQuery 创建回复表单:

$(document).ready(function(){
    $form = $('<form class="mt-3" method="POST" action="/reply/"></form>');
    $form.append("<input type='hidden' name='csrfmiddlewaretoken' value='" + csrftoken + "'>");
    $form.append('<textarea name="content" id="" cols="30" rows="5"></textarea>');
    $form.append('<br />');
    $form.append('<input type="button" value="Cancel" class="btn btn-dark me-2 remove-button">');
    $form.append('<input type="submit" value="Post" class="btn btn-primary">');
    $(".reply-button").click(function(){
        $button = $(this);
        $button.parent().append($form);
    });

    //gán sự kiện khi sử dụng append một đối tượng sau này
    $(document).on('click', '.remove-button', function(){ 
        $form.remove();
    });
})

动作重定向到回复视图视图:

class ReplyView(View):
    def post(self, request, *args, **kwargs):
        # I expect something can get Comment id for reply
        qs = Comment.objects.filter(id = 1)
        comment = qs.first()
        if request.user.is_authenticated:
            r = Reply(user = request.user, comment = comment, content= request.POST.get("content"))
            r.save()
        return redirect("comment-page")

标签: javascriptjquerypython-3.xdjango

解决方案


推荐阅读