Состояние запроса 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), значение остается таким, как и должно быть. Если этого не сделать, оно изменяется. Таким образом, оно ведет себя по-разному, когда наблюдается.

Вернуться на верх