Это бесчисленное количество времени в моем опыте, когда я потратил несколько часов, пытаясь отладить ненормальное поведение моего кода, которое вытекает из следующей ситуации:
x = MyModel.objects.get(...) # Here I expect that x.name = 'a'
#...
MyModel.objects.update(...) # This results in x.name being changed to 'b'
# Some long code.....
# and the...oh my Gode...
# Do something expecting that x.name equals to 'a', but the fact is that it's already b
Есть ли способ сделать Python предупредить меня о таких случаях? Например, это может быть какой-то декоратор, который выводит на консоль данные, которые я пытаюсь получить доступ к измененному значению модели в одном представлении ... Или, может быть, инструмент PEP8 ... Я хотел бы подчеркнуть, что меня не интересует РАЗРЕШЕНИЕ этой проблемы. Я ищу инструмент, чтобы предупредить меня об этом. Декоратор не кажется хорошим выбором, потому что я не забуду включить его в каждую функцию. Может быть, я мог бы сделать это в промежуточном программном обеспечении? То есть я ищу код, который после каждой инициализации новой переменной проверял бы, является ли ее значение страховкой ORM. Второй шаг - определить, что его значение изменилось. И затем во время каждой запущенной команды целевой функции проверяется, развернута ли эта переменная. Я понимаю, что это уменьшит скорость просмотра, но я мог запустить его только в режиме отладки. Вопрос в том, какие Python инструменты следует использовать для достижения этой цели и возможно ли это вообще без попытки изменить интерпретатор самого python:))