二、demo演示 访问链接: https://github.com/zmrenwu/django-mptt-comments 下载完整代码,这里面有提供一个demo,文件夹就是example 安装依赖 django_mptt_comments_mpttcomment 表记录了评论信息 ? templates 是模板目录,可以根据需要,将页面调整的好看一些。 本文参考链接: https://github.com/zmrenwu/django-mptt-comments
django-mptt 简介:Utilities for implementing a modified pre-order traversal tree in django. GitHub 地址:https://github.com/django-mptt/django-mptt 文档地址:https://django-mptt.readthedocs.io/ 点评:配合 Django 总之,只要你的数据结构可能需要使用树来表示,django-mptt 将大大提高你的开发效率。 好在这个库具有很好的拓展性,基于上边提到的 django-mptt,就可以构建一个支持层级评论的评论库,就像 我的博客评论区 中展示的这样(个人博客的评论模块就是基于 django-contrib-comments 和 django-mptt 写的)。
pip install django-filer 这个模块需要 django-mptt, easy_thumbnails, django-polymorphic 以及 pillow 这些依赖包, 不过安装 settings.py 中加入以下内容: INSTALLED_APPS = [ # 图片上传模块 django-filer 'easy_thumbnails', 'filer', 'mptt
github.com/django-crispy-forms/django-crispy-forms 文档地址:http://django-crispy-forms.rtfd.org/ 23.django-mptt 总之,只要你的数据结构可能需要使用树来表示,django-mptt 将大大提高你的开发效率。 GitHub 地址:https://github.com/django-mptt/django-mptt 文档地址:https://django-mptt.readthedocs.io/ 24.django-contrib-comments 好在这个库具有很好的拓展性,基于上边提到的 django-mptt,就可以构建一个支持层级评论的评论库。
{ 'thread': thread, 'comments': comments })我的模板如下:{% extends "base.html" %}{% load mptt_tags {% extends "base.html" %}{% load mptt_tags %}{% block content %}
| 1/4/8 | +----+-------------+-----------+-------+查找某个节点及其子节点比较方面,就是修改比较费劲,特别是节点移动,所有子节点的path都得跟着修改 MPTT parent的方式最为场景,一般树形结构数据量不大的话,直接在应用层内存构造树形结构和搜索 存储path的好处是可以借助path来查找节点及其子节点,缺点就是移动node需要级联所有子节点的path,比较费劲 MPTT
8 | +----+-------------+-----------+-------+ >查找某个节点及其子节点比较方面,就是修改比较费劲,特别是节点移动,所有子节点的path都得跟着修改 # MPTT 的方式最为场景,一般树形结构数据量不大的话,直接在应用层内存构造树形结构和搜索 • 存储path的好处是可以借助path来查找节点及其子节点,缺点就是移动node需要级联所有子节点的path,比较费劲 • MPTT
django.contrib.staticfiles', # 项目新添加的app 'django.contrib.sites', 'django_comments', 'mptt django.contrib.messages', 'django.contrib.staticfiles', 'django_comments', 'django.contrib.sites', 'mptt
django-filter django-formtools django-grappelli django-guardian django-import-export django-model-utils django-mptt
File "/Users/pitou/PycharmProjects/itsm_develop/service/models.py", line 13, in <module> from mptt.models MPTTModel, TreeForeignKey File "/Users/pitou/.virtualenvs/itsm_migrate/lib/python2.7/site-packages/mptt return meta(name, bases, d) File "/Users/pitou/.virtualenvs/itsm_migrate/lib/python2.7/site-packages/mptt
django-mptt, star:1439 - 用来在 Django 中实现一个修订版的先序遍历树的工具集。 django-treebeard, star:370 - Django 中树数据结构的另一种实现(提供了 3 种不同的层级数据排序方法,包括 MPTT )。