2016-07-20 2 views
0

screen shot 2016-07-20 at 17 06 39Джанго-mptt поднимает объект 'NoneType' не имеет атрибута 'tree_id' при сохранении узлу

Окружающая среда: питон 2.7.10, Django 1.9.1, Джанго-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) 

set_raw_field_value source:

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

Похоже, что установка parent_id никак не сбрасывает родительский элемент, resp. parent не динамически загружается из базы данных только потому, что поле имеет некоторое значение.

https://github.com/django-mptt/django-mptt/issues/428

Смежные вопросы