一、摘要

拓展 django 官方的评论库,为评论提供无限层级的支持。

二、demo演示

访问链接:

https://github.com/zmrenwu/django-mptt-comments

下载完整代码,这里面有提供一个demo,文件夹就是example

安装依赖

安装根目录下的2个txt文件

pip3 install -r requirements.txt
pip3 install -r requirements_test.txt

使用Pycharm打开example,生成数据库

python makemigrations
python manage.py migrate

启动django 项目

访问页面:

http://127.0.0.1:8000/

效果如下:

添加文章

使用客户端,打开db.sqlite3文件,打开表blog_post,添加一条记录:

刷新页面,效果如下:

点击测试,进入评论页面

输入表单数据,会跳转页面

http://example.com/posts/1#c1

重新访问首页,点击测试

在提交按钮下面,就会显示评论。

点击reply,回复一下

再次返回首页,点击测试,评论效果如下:

点击2楼后面的reply,回复一下

再次返回首页,点击测试,评论效果如下:

回复3楼

4级评论如下:

还可以再次回复,这里就不演示了。

django_mptt_comments_mpttcomment 表记录了评论信息

templates 是模板目录,可以根据需要,将页面调整的好看一些。

本文参考链接:

https://github.com/zmrenwu/django-mptt-comments

django 无限层级的评论的更多相关文章

  1. js treeData 树形数据结构 无限层级(转载)

    js实现无限层级树形数据结构(创新算法) 转载:https://blog.csdn.net/Mr_JavaScript/article/details/82817177 由于做项目的需要,把一个线性数 ...

  2. SQL查询无限层级结构的所有下级,所有上级

    无限层级结构的table1表,Id(主键),ParentId(父级id)查询某个Id的所有下级或所有上级,使用WITH AS,UNION ALL 查询 1.查询Id为1所有的下级 WITH T AS( ...

  3. 简单叨叨bootstrap按钮无限层级下拉菜单的实现

    0.写在前面的话 最近看书都懈怠了,又正值新项目,虽说并不是忙得不可开交,好吧我老实交待,我就是偷懒了其实,博客也没更.言归正传,对于前端的不熟悉现在确实是个让我头疼的事情,以至于一些功能要在网络上漫 ...

  4. Php无限层级并显示层级数

    今天在处理递归无限层级菜单时,遇到一个稍微烧脑的问题,如何显示当前节点所在的层级数.废话不多说,我们先看个直观的无限层级: <?php // 这里的arr是直接从数据库取出的,仅作为测试数据 $ ...

  5. WebAPI增加Area以支持无限层级同名Controller

    原文:WebAPI增加Area以支持无限层级同名Controller 微软的WebAPI默认实现逻辑 默认实现中不支持同名Controller,否则在访问时会报HttpError,在网上找到了各种路由 ...

  6. java中实现无限层级的树形结构

    本文展示了两个实现方法的代码.两个代码的实现方法不同,代码2更为简单. 先看一下最后实现的结果: 最后结果-json 代码1: 实现过程: 1.传入一段json字符串 2.将字符串转换成对象存入节点列 ...

  7. django中的多级评论

    需求分析 一般论坛中有评论和子评论,这样很容易就成了一个评论树,比如以下情况,先看数据结构: #nid,评论内容,跟帖对象(None为根评论) (1, '111', None), (2, '222', ...

  8. Java编程:将具有父子关系的数据库表数据转换为树形结构,支持无限层级

    在平时的开发工作中,经常遇到这样一个场景,在数据库中存储了具有父子关系的数据,需要将这些数据以树形结构的形式在界面上进行展示.本文的目的是提供了一个通用的编程模型,解决将具有父子关系的数据转换成树形结 ...

  9. django 使用多说 评论系统

    效果图 方法:登录多说网站,创建站点.然后有下面的提示 ************************************************* 复制以下代码,并粘帖到您网页代码<bo ...

随机推荐

  1. 【jmeter】Include Controller控件&Test Fragment的使用

    概念:简单说下Include Controller引用Test Fragment片段 Include Controller控件——给当前jmeter脚本引入外部片段的jmeter脚本(Test Fra ...

  2. [技术博客]Pyqt5实现Widget内部拖拽

    Pyqt5实现Widget内部拖拽 ​ 在本次项目的beta迭代中,程序需要在需要在QListWidget内实现对于添加后的测试序列,可以通过鼠标拖拽的方式来移动测试序列,方便用户操作. 允许拖拽 ​ ...

  3. 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'TableName'中的标识列指定显式值

    当某表的一个列为自动增长列,是无法直接通过insert语句向给字段写入指定值,解决方法: SET IDENTITY_INSERT TABLE_NAME ON; INSERT INTO TABLE_NA ...

  4. nginx 日志打印响应时间 request_time 和 upstream_response_time

    设置log_format,添加request_time,$upstream_response_time,位置随意 og_format  main  '"$request_time" ...

  5. 树莓派3B+红外配置

    sudo apt-get install lirc /etc/lirc/lirc_options.conf #driver = devinput driver = default #device = ...

  6. android测试和iOS测试的区别

    一.常识性区别 二.导航方式 iOS:Tab放在页面底部,不能通过滑动来切换,只能点击.也有放在上面的,也不能滑动,但有些Tab本身可以滑动,比如天猫的.还有新闻类的应用. Android:一般放在页 ...

  7. 批量kill掉包含某个关键字的进程

    需要把 linux 下符合某一项条件的所有进程 kill 掉,又不能用 killall 直接杀掉某一进程名称包含的所有运行中进程(我们可能只需要杀掉其中的某一类或运行指定参数命令的进程),这个时候我们 ...

  8. springboot装配OkHttp组件

    在SpringBoot应用中,发送Http通常我们使用RestTemplate,但有部分组件底层是使用OkHttp进行Http的操作,而且OKHttp也是一个很优秀的HTTP组件. RestTempa ...

  9. MySQL应用报错:java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction

    开发反馈,某业务系统插入一条记录的时候,日志报错,插入失败: ### Error updating database. Cause: java.sql.SQLException: Lock wait ...

  10. sumdoc t411 dir.txt

    C:\Users\zhoufeiyue\Documents\sumdoc t411\(9+条消息)redis Jedis存取list对象和map - shenjianxz的博客 - CSDN博客.mh ...