akm*_*akm 6 django django-mptt python-2.7
我正在使用django-mptt(5.5版)django-mptt.github.io/django-mptt/
我有一个树结构为:
+Object Oriented
|----Java
+Procedural
|----Python
|----PHP
|----B
|----C
Run Code Online (Sandbox Code Playgroud)
现在,我想通过将父节点Python和PHP节点更改为来重构树Object Oriented,使其看起来像:
+Object Oriented
|----Java
|----Python
|----PHP
+Procedural
|----B
|----C
Run Code Online (Sandbox Code Playgroud)
我已经尝试通过更改节点的父属性为
>>>oo=Nodes.objects.get(name='Object Oriented')
>>>py=Nodes.objects.get(name='Python')
>>>py.parent=oo
Run Code Online (Sandbox Code Playgroud)
完成此操作后,我得到:
>>>py.parent==oo
True
>>>py.get_ancestors(ascending=False, include_self=False)
[<Nodes : 'Procedural'>]
Run Code Online (Sandbox Code Playgroud)
即使是内置方法,例如:
py.move_to(oo,'first-child')
Run Code Online (Sandbox Code Playgroud)
似乎不适合我。
如果需要更多说明,我的模型是:
from django.db import models
from mptt.models import MPTTModel, TreeForeignKey
class Nodes(MPTTModel):
name = models.CharField(max_length=50, unique=True)
parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
def __unicode__(self):
return self.name
class MPTTMeta:
order_insertion_by = ['name']
Run Code Online (Sandbox Code Playgroud)
请告诉我改变父母的方法。
| 归档时间: |
|
| 查看次数: |
652 次 |
| 最近记录: |