首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重建django-mptt树?

如何重建django-mptt树?
EN

Stack Overflow用户
提问于 2011-04-05 00:27:36
回答 4查看 11.6K关注 0票数 17

我正在使用django-mptt 0.4.2,并且想要重建一棵树。

树管理器有一个rebuild()方法,我尝试像这样访问它:

代码语言:javascript
复制
>>> my_rootnode = MyObj.objects.get(id=12)
>>> my_rootnode.tree.rebuild()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python2.6/dist-packages/django/db/models/manager.py", line 211, in __get__
    raise AttributeError("Manager isn't accessible via %s instances" % type.__name__)
AttributeError: Manager isn't accessible via MyObj instances

很明显我做错了。我应该如何访问rebuild方法?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-09 09:47:59

AttributeError:无法通过MyObj实例访问Manager

mptt Manager继承自django.db.models.Manager,不能通过模型实例访问,只能通过模型类访问。更多信息:Retrieving objects

这里的模型类是MyObj。您正在使用模型实例my_rootnode

正确的用法是:

MyObj.tree.rebuild() ()

这将构建MyObj树。

票数 20
EN

Stack Overflow用户

发布于 2014-09-10 06:27:57

为我工作:

代码语言:javascript
复制
MenuItem.objects.rebuild()
票数 21
EN

Stack Overflow用户

发布于 2015-06-17 00:02:48

最新的MPTT版本似乎需要以下命令。尽管前面的破折号表示树管理器是私有的,可能不应该直接访问:

代码语言:javascript
复制
MyObj._tree_manager.rebuild()
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5541432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档