[英]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.