Javascript view videos.views.add_comment_post没有';t返回HttpResponse对象。使用Django中的第二个对象

Javascript view videos.views.add_comment_post没有';t返回HttpResponse对象。使用Django中的第二个对象,javascript,django,django-models,django-views,django-templates,Javascript,Django,Django Models,Django Views,Django Templates,我试图建立一个博客,这个博客由帖子组成,这些帖子有评论,当我在第一篇帖子中添加评论时,它成功地添加了评论,但当我尝试添加评论时,第二或第三个错误就会出现 ValueError:view videos.views.add_comment_post未返回HttpResponse对象。相反,它没有返回任何结果。 我尝试将注释表单添加到模板中,但没有任何小部件commentForm=PostCommentForm()添加到模板{commentForm},我填充了它,这个问题仍然存在 我的后模特 clas

我试图建立一个博客,这个博客由帖子组成,这些帖子有评论,当我在第一篇帖子中添加评论时,它成功地添加了评论,但当我尝试添加评论时,第二或第三个错误就会出现 ValueError:view videos.views.add_comment_post未返回HttpResponse对象。相反,它没有返回任何结果。

我尝试将注释表单添加到模板中,但没有任何小部件
commentForm=PostCommentForm()
添加到模板
{commentForm}
,我填充了它,这个问题仍然存在

我的后模特

class Post(models.Model):
    author = models.ForeignKey(Account, on_delete=models.CASCADE)
    article = models.TextField(null=True, blank=True)
    photo_article = models.ImageField(max_length=255, upload_to=get_poster_filepath)
    created_date = models.DateTimeField(auto_now_add=True)


class PostCommentIDF(MPTTModel):
    post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments')
    parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True,    related_name='children')
    author = models.ForeignKey(Account, on_delete=models.CASCADE)
    content = models.TextField()
    publish = models.DateTimeField(auto_now_add=True)
    status = models.BooleanField(default=True)
我的“创建评论”视图

@login_required
def add_comment_post(request):
    if not request.user.is_active:
        return render(request, 'personal/violated.html')
    if request.method == 'POST':
        if request.POST.get('action') == 'delete':
            id = request.POST.get('nodeid')
            c = PostCommentIDF.objects.get(id=id)
            c.delete()

            return JsonResponse({'remove': id})
        else:
            comment_form = PostCommentForm(request.POST)
            if comment_form.is_valid():
                user_comment = comment_form.save(commit=False)
                user_comment.author = request.user
                user_comment.save()
                result = comment_form.cleaned_data.get('content')
                user = request.user.username

                return JsonResponse({'result': result, 'user': user})
我的意见表

class PostCommentForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
class Meta:
    model = PostCommentIDF
    fields = {'post', 'content'}
    widgets = {
        'content': forms.Textarea(attrs={'class': ' form-control', 'rows': '1', 'placeholder': 'Comment', 'required': 'True', })
    }
def save(self, *args, **kwargs):
    PostCommentIDF.objects.rebuild()
    return super(PostCommentForm, self).save(*args, **kwargs)
我的主页模板

{% for video in video %}
   ....
 <form id="Postcommentform" class="Postcommentform" method="post" style="width: 100%;">
     {% load mptt_tags %}
     {% csrf_token %}
<

select class="d-none" name="video" id="id_video">
        <option value="{{ video.id }}" selected="{{ video.id }}"></option></select>
      <div class="d-flex">
   <label class="small font-weight-bold">{{ comments.parent.label }}</label>
            {{ comments.parent }}
          {{comments.content}}
 <button value="Postcommentform" id="Postnewcomment" type="submit"  style="color: white; border-radius: 0;" class="d-flex justify-content-end btn btn-primary">Post</button>
               </div>
          </form>
       ....
    {% endfor %}
{%用于视频中的视频%}
....
{%load mptt_标记%}
{%csrf_令牌%}
<
选择class=“d-none”name=“video”id=“id\u video”>
{{comments.parent.label}
{{comments.parent}}
{{comments.content}
邮递
....
{%endfor%}
我的用于添加帖子的ajax

    myCommentForm = document.getElementById("Postcommentform")

$(document).on('click', '#Postnewcomment, #Postnewcommentinner', function (e) {
  e.preventDefault();

  var button = $(this).attr("value");

  var placement = "Postcommentform"
  if (button == "Postnewcommentform") {
     var placement = "becomm"
  }

  $.ajax({
    type: 'POST',
    url: '{% url "video:addcomment_post" %}',
    data: $("#" + button).serialize(),
    cache: false,
    success: function (json) {
      console.log(json);

      $('<div id="" class="my-2 p-2" style="border: 1px solid grey"> \
        <div class="d-flex bd-highlight mb-3">\
         <div class="p-2 bd-highlight">' + json['user'] + '</div> <div class="ml-auto p-2 bd-highlight">Posted: Just now!</div> \
         </div>\
         <div>' + json['result'] + '</div> \
         <br>\
         </div>').insertAfter('becomm' + placement);
         
         document.getElementById("Postcommentform").reset();
       },
       
      error: function (xhr, errmsg, err) {

    }
  });
})
myCommentForm=document.getElementById(“Postcommentform”)
$(文档).on('click','postnocommont,#postnocommontinner',函数(e){
e、 预防默认值();
var按钮=$(this.attr(“值”);
var placement=“Postcommentform”
如果(按钮==“Postnewcommentform”){
var placement=“becomm”
}
$.ajax({
键入:“POST”,
url:“{%url”视频:addcomment_post“%}”,
数据:$(“#”+按钮)。序列化(),
cache:false,
成功:函数(json){
log(json);
$(' \
\
'+json['user']+'发布:刚刚\
\
'+json['result']+'\

\ )。插入后面('becomm'+位置); document.getElementById(“Postcommentform”).reset(); }, 错误:函数(xhr、errmsg、err){ } }); })
显示添加\评论\发布视图的完整代码您好,我更新了我的问题如果表单无效,您尚未返回任何响应。事实上,即使只是404或403,您也应该返回GET请求的响应。我如何才能让表单不出现问题,因为我可以在第一篇文章中添加注释,但我不能在第二篇或第三篇文章中只在该视图的末尾添加注释
return JsonResponse({'result':“No action taked”})
这将解决帖子中提到的问题。。