簡體   English   中英

django 如何在發布之前查看博客評論?

[英]django How to review blog comment before publish?

我是 django 的新手。 我想在我的博客評論發布或顯示在我的 html 模板之前查看它。 我在我的評論部分使用 MPTTModel model 作為子父關系。 我在模型中使用了 BooleanField,但它不起作用。 現在我的 html 模板在任何用戶提交評論時顯示所有博客評論。 這是我的代碼:

#models.py

class BlogComment(MPTTModel):
      blog = models.ForeignKey(Blog,on_delete=models.CASCADE)
      parent = TreeForeignKey('self', on_delete=models.CASCADE,
                            null=True, blank=True, related_name='children')
      name = models.CharField(max_length=250)
      email = models.EmailField(max_length=2000)
      comment = models.TextField(max_length=50000)
      created_at = models.DateTimeField(auto_now_add=True,blank=True,null=True)
      updated_at = models.DateTimeField(auto_now=True,blank=True,null=True)
      is_approve = models.BooleanField(default=False)

#forms.py

class CommentFrom(forms.ModelForm):
      class Meta:
          model = BlogComment
          fields = ['name','email','comment']

視圖.py

class BlogDetail(DetailView):
      model = Blog
      template_name = 'blog_details.html'      
      
      def get(self,request,slug):
          blog = Blog.objects.get(slug=slug)
          form = CommentFrom()
          context = {'form':form,
                     'blog':blog,
                   }
          return render(request,'blog_details.html',context)

      def post(self,request,slug):
          blog = Blog.objects.get(slug=slug)
          form = CommentFrom(request.POST)
              
          if form.is_valid():
             comment = form.save(commit=False) 
             comment.blog = blog
             comment.save()
             messages.add_message(self.request, messages.INFO, 'Your Comment pending for admin approval')
             return redirect(reverse('blog-detail', kwargs={'slug':slug}))
          
          else:
               form()
          
          context = {'form':form,
                     'blog':blog,
                      
                      
                      
                   }
          return render(request,'blog_details.html',context)

#html

{% load mptt_tags %}
                            
{%  recursetree blog.blogcomment_set.all %}
<p>comment: {{node.comment}}</p>
            {% if not node.is_leaf_node %}
               <div class="children pl-2 pl-md-5">
                {{ children }}
                </div>
            {% endif %}
{% endrecursetree %}

我還在我的視圖中嘗試了此查詢,然后將其傳遞給上下文,但在我的模板中沒有看到任何批准的評論。 queryset = BlogComment.objects.filter(blog=blog,is_approve=True)我錯過了什么???

我將queryset = BlogComment.objects.filter(blog=blog,is_approve=True)放在錯誤的位置。 在 get 方法中添加這個查詢集后,我的問題就解決了。 這是代碼,希望對其他人有所幫助:

def get(self,request,slug):
          blog = Blog.objects.get(slug=slug)
          queryset = BlogComment.objects.filter(blog=blog,is_approve=True)
          form = CommentFrom()
          context = {'form':form,
                     'blog':blog,
                     'queryset':queryset,   
                   }
          return render(request,'blog_details.html',context)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM