Состояние запроса mptt меняется во время отладки в зависимости от точек останова
Я использую модель Tree, основанную на MPTTModel. В представлении для Tree я написал функцию для перемещения объектов по дереву. Это сильно упрощенная версия функции:
@transaction.atomic
def move(self, request, source, target, *args):
source_child_descendants = source.get_descendants(include_self=True)
ancestors = source.get_ancestors()
if target == 'none':
return self.move_root(source)
else:
source.move_to(target)
source.inherit_permission(descendants=source_child_descendants)
return result
Странно то, что в зависимости от того, где я устанавливаю точки останова, значение source_child_descendants меняется. Если я устанавливаю точку останова в любом месте между инициализацией source_child_descendants и source.move_to(target), значение остается таким, как и должно быть. Если этого не сделать, оно изменяется. Таким образом, оно ведет себя по-разному, когда наблюдается.