我的模型类可以包含多个树。
class MyClass(MPTTModel, AbstractClass):
"""
"""
name = models.CharField(_('name'), max_length=255)
parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
***
我想我能做到:
nodes = MyClass.objects.filter(tree_id=1)
使用:
nodes.get_root(), nodes.get_children(), etc,
但我有
str: 'QuerySet' object has no attribute 'get_root'
阅读DOC“MPTTModel的子类具有以下实例方法: * ”
如何在一个模型类中使用具有多个树的方法?
谢谢!
答案 0 :(得分:1)
您正在queryset上调用get_root()
和其他方法。相反,您需要在模型实例上调用它们。要通过id
使用get()
node = MyClass.objects.get(tree_id=1)
node.get_root()
或者,如果您是filtering multiple objects,则遍历生成的查询集:
nodes = MyClass.objects.filter(some_conditions)
for node in nodes:
node.get_root()