Django管理的TreeWidget

django-treewidget的Python项目详细描述


提供模型字段treeForeverKey、treeOneField, treemantomanyfield,用于树模型,带有用于django的树小部件。使用 jstree(多亏了vakata)。

用django mptt和django treebeard测试,django 1.11&2.0.2。 与django<;1.11不兼容。

安装

  • pip install django-treewidget
  • 'treewidget'放入INSTALLED_APPS
  • 对于ajax树更新,添加到url.py的路由,例如 url(r'^treewidget/',include('treewidget.urls'))

用法

只需将任何外键、m2m或one2one tree model字段替换为 提供副本。

定制

字段理解另外两个参数:

  • settings:包含可选布尔值的字典 “显示按钮”(显示“展开”、“折叠”和“选定”按钮); “搜索”(用于树内搜索)、“dnd”(拖放支持)和 “排序”(在前端应用树顺序)。默认为{}
  • treeoptions:直接应用于jstree的设置。一定是 json字符串,如果作为字段的参数提供,则为python 字典。默认为treewidget.fields.TREEOPTIONS。请注意 一些小部件设置将覆盖treeoptions以保持工作。

这两个设置都可以在settings.py中作为项目范围提供 TREEWIDGET_SETTINGSTREEWIDGET_TREEOPTIONS

可以通过重写 默认格式化程序。只需将分支的父ID设置为“” 格式化程序的render方法中的顶级项。

注意:如果使用预过滤的queryset,则数据不构成 包含最高级别的所有父级的子树,jstree无法呈现 是的。设置中的“filtered”设置为True时 查询集将通过添加不可选择的缺失节点来呈现。

示例

fromdjango.dbimportmodelsfrommptt.modelsimportMPTTModelfromtreewidget.fieldsimportTreeForeignKeyclassMptt(MPTTModel):name=models.CharField(max_length=32)parent=TreeForeignKey('self',blank=True,null=True,on_delete=models.CASCADE)def__str__(self):returnself.name

呈现如下:

screenshot

屏幕截图

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用MVC设计模式观察嵌套对象   java将多个客户端连接到服务器   合并Java Web应用程序   Spring Security中未捕获java AuthenticationSuccessEvent   java Firebase JSON到Arraylist内部的Arraylist,存在对象问题   在Java15的sealedclasses特性中,final类和非密封类之间有什么区别?   java我可以使用数组。copyOf制作二维数组的防御副本?   java球不会在屏幕上移动   Java类如何在同一个文件中包含两个类?   java使用“Character.isWhiteSpace”删除所有空白   java阻止在RealmList中保存时创建领域对象   如何仅在ConnectionFactory上使用Java JMS身份验证   spring可以强制java对象在运行时实现接口吗?   socket无法在JAVA中使用TCP启用双工模式通信