博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django博客功能实现—文章评论的显示
阅读量:6824 次
发布时间:2019-06-26

本文共 1827 字,大约阅读时间需要 6 分钟。

功能:

在打开文章之后,能在文章下面是显示文章的评论,有父级评论。
思路:
在文章详情的视图里面,获取这个文章的全部评论,得到显示列表,然后用模板显示出来。
步骤:
一,在views.py的文章详情中获取评论:

1 #文章详情 2 #blog/views.py 3 def article(request): 4     try:  5         # 获取评论信息 6         #查询指定文章的所有评论,按照id排序 7         comments = Comment.objects.filter(article=article).order_by('id') 8         #创建一个评论的空列表 9         comment_list = []10         #遍历一篇文章中的所有评论11         for comment in comments:12             for item in comment_list: 13 #判断item中是否有"children_comment"属性,返回布尔值 14 if not hasattr(item, 'children_comment'): 15 #若无"children_comment"属性,则设置这个属性,属性的值为[] 16 setattr(item, 'children_comment', []) 17 #如果item和父级评论的值相等,则讲该遍历出来的文章添加到"children_comment"属性,然后跳出当前循环 18 if comment.pid == item: 19  item.children_comment.append(comment) 20 break 21 #如果父级评论为空,则讲给评论放到父级评论列表里面 22 if comment.pid is None: 23  comment_list.append(comment) 24 except Exception as e: 25 print e 26  logger.error(e) 27 return render(request, 'article.html', locals())

二、在模板中显示出来

1 #article.html 2           {% for comment in comment_list %} 3         4         {
{ comment.username }}
{
{ comment.date_publish | date:'Y-m-d H:i:s' }}
5
6 7

{

{ comment.content }}

8 9 10 {% for children_comment in comment.children_comment %}11
  • 12
    19
  • 20 {% endfor %}

     

    如此就能讲一个文章的评论显示出来

    转载于:https://www.cnblogs.com/cenyu/p/5713387.html

    你可能感兴趣的文章
    设置iptables之后不能正常访问ftp解决方法
    查看>>
    移动端rem布局
    查看>>
    jsp与iframe跨域访问的一个方法
    查看>>
    ViewPager + Fragment 取消预加载
    查看>>
    BigDecimal 02 - 注意事项
    查看>>
    用js玩桌球游戏
    查看>>
    maven下运行jetty报错
    查看>>
    android 配置framework 使应用首选安装在SD卡
    查看>>
    h5 点击表单 顶部fixed 菜单栏 上移
    查看>>
    windows 2008 R2 64位系统杀毒软件
    查看>>
    我的友情链接
    查看>>
    netty学习笔记
    查看>>
    更改win7文件类型默认操作
    查看>>
    我的友情链接
    查看>>
    我的友情链接
    查看>>
    Webgoat 笔记总结 Web Services
    查看>>
    Linux Mysql安装部署
    查看>>
    多线程 概述
    查看>>
    Nagios达到阈值时发不出告警邮件问题总结
    查看>>
    互联网公司应该要有的技术人员配置和开发事项清单
    查看>>