环境:python 2.7.10,Django 1.9.1,django-mptt 0.8.4
# models.py
class Foo(MPTTModel):
parent = TreeForeignKey('self', null=True, blank=True)
错误提升:
getattr(self, opts.tree_id_attr) != getattr(parent, opts.tree_id_attr)
其中父级是None
,因为:
1)link
opts.set_raw_field_value(self, opts.parent_attr, old_parent_id) # old_parent_id is None
2)link
parent = getattr(self, opts.parent_attr)
def set_raw_field_value(self, instance, field_name, value):
field = instance._meta.get_field(field_name)
setattr(instance, field.attname, value)
帮助我理解这种行为。为什么它不足以通过self.parent_id
设置关系?
答案 0 :(得分:0)
似乎设置parent_id不会以任何方式重置父级, RESP。不会因为数据库而动态加载父级 底层的id字段有一些价值。