Django博客功能实现—文章评论的显示
功能:
在打开文章之后,能在文章下面是显示文章的评论,有父级评论。
思路:
在文章详情的视图里面,获取这个文章的全部评论,得到显示列表,然后用模板显示出来。
步骤:
一,在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())
二、在模板中显示出来
#article.html
{% for comment in comment_list %} <a href='{{ comment.url }}'>{{ comment.username }}</a><a href="#comment-59418">{{ comment.date_publish | date:'Y-m-d H:i:s' }}</a>
<div><img alt='' src='{% static 'images/default.jpg' %}' class='avatar avatar-32 photo' height='' width='' /></div> <p>{{ comment.content }}</p>
</div>
</li>
{% for children_comment in comment.children_comment %}
<li id="comment-59542">
<div class="reply">
<div class="top"><a href="{{ children_comment.url }}" rel="external nofollow" class="url">{{ children_comment.username }}</a><span class="time"> @ <a href="#comment-59543" title="">{{ children_comment.date_publish | date:'Y-m-d H:i:s' }}</a></span></div>
<div><img alt="" src="{% static 'images/default.jpg' %}" class="avatar avatar-32 photo" height="" width=""></div> <div class="body">
{{ children_comment.content }} </div>
</div>
</li>
{% endfor %}
如此就能讲一个文章的评论显示出来
Django博客功能实现—文章评论的显示的更多相关文章
- Django博客功能实现—文章评论功能
功能:在A网页提交一个评论Forms_B,提交之后自动刷新页面,能够显示刚刚的画面思路:利用一个已经创建的表单,通过视图让其在网页中表现出来,填写玩信息之后提交,会提交到一个新的视图里面去做接受,接受 ...
- Django 博客单元测试:测试评论应用
作者:HelloGitHub-追梦人物 文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 评论应用的测试和博客应用测试的套路是一样的. 先来建立测试文件的目录结构.首先在 c ...
- django博客功能实现——标签功能
标签功能添加流程 0.功能概括 标签作为文章中的分类标记,会显示出该文章是关于哪一方面的文章,比如是关于python的还是关于django的. 当我们点击该标签的时候,会出现该博客中所有属于该标签的文 ...
- Django博客功能实现
开发环境:Python3.5.2和Django1.10.2 username: rootemail: 2016968116@qq.compassword: 123456liuqiuchen 现在我们进 ...
- Django(博客系统):文章内容使用django-ckeditor、文章简介使用django-tinymce
文章内容使用django-ckeditor 1)安装django-ckeditor pip install django-ckeditorpip install Pillow 2)在settings. ...
- django博客项目8:文章详情页
首页展示的是所有文章的列表,当用户看到感兴趣的文章时,他点击文章的标题或者继续阅读的按钮,应该跳转到文章的详情页面来阅读文章的详细内容.现在让我们来开发博客的详情页面,有了前面的基础,开发流程都是一样 ...
- 为hexo博客添加基于gitment评论功能
关于gitment gitment其实就是利用你的代码仓库的Issues,来实现评论.每一篇文章对应该代码仓库中的 一个Issues,Issues中的评论对应你的博客每篇文章中的评论.如果你是用git ...
- django博客项目6:Django Admin 后台发布文章
在此之前我们完成了 Django 博客首页视图的编写,我们希望首页展示发布的博客文章列表,但是它却抱怨:暂时还没有发布的文章!如它所言,我们确实还没有发布任何文章,本节我们将使用 Django 自带的 ...
- Django博客开发实践,初学者开发经验
python,Django初学者,开发简易博客,做了一下笔记,记录了开发的过程,功力浅薄,仅供初学者互相 交流,欢迎意见建议.具体链接:Django博客开发实践(一)--分析需求并创建项目 地址:ht ...
随机推荐
- 怎么用SAX生成xml文件
public void createXML() throws Exception{ Book b1 = new Book(); b1.setId("1"); b1.setName( ...
- tomcat 自定义classpath(亲自测试)
因为一直以来使用tomcat和weblogic作为应用服务器为主,最近在升级新中间件的过程中遇到一个问题,我们的web前端应用现在升级是进行全量包升级的,因为现在的系统架构为前端和后端通过rpc框架交 ...
- JS实现自适应宽度的Tag切换
效果体验:http://hovertree.com/texiao/js/3.htm 该效果使用纯JavaScript代码,实现TAB页切换效果,TAB标签根据内容自适应宽度,点击TAB标签切换内容页. ...
- jQueryMobile示例页面代码
这是一个jQueryMobile示例页面 示例效果:http://hovertree.com/texiao/jquerymobile/ 可以在手机或者触屏浏览器查看效果. 以下是HTML代码: < ...
- 【小贴士】【stringify神BUG】【localstorage失效】【消灭Safari alert框】【是否延迟加载】【页面10px白屏】
前言 最近碰到几个恶心问题,也发现一点优化技巧,以及对Hybrid知识的一些整理,这里便一并拿出来做分享了,关于Hybrid的调试,会是我今后一个重点 我的博客首先是学习笔记,方便自己做知识沉淀,以后 ...
- ae 地理坐标与投影坐标转换 [转]
转载地址:http://blog.163.com/lai_xiao_hui/blog/static/123037324201151443221942/ 代码是将WGS84地理坐标转换为WGS84UTM ...
- 基于WebGL的三维地形渲染
1.生成WebMap页面 #!/usr/bin/env python # -*- coding: utf-8 -*- import subprocess from jinja2 import Envi ...
- SharePoint 2013 Ajax 造成页面无法编辑
1.如下图,在编辑页面的时候,出现如下错误“此网页自上次打开后已被修改,必须再次打开该网页”,页面上没有什么特别的设置,就是default.aspx: 2.编辑之前页面,只有一个内容编辑器部件,和若干 ...
- IOS 图片上传处理 图片压缩 图片处理
- (void)initActionSheet { UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil dele ...
- Mac使用极简教程
最近领导让我写一篇关于Mac的使用教程,因为使用人群未知,所以尽量写的通俗易懂,可谓是关于Mac电脑使用的精简教程吧,在此发表出来以供参考. Mac因为安全性而闻名,我们拥有了一部Mac,那么我们来了 ...