Словарь моделей Python / Django допускает один тип обновления, но не другой - PullRequest
0 голосов
/ 28 марта 2019

Я работаю над некоторым кодом Django / Python.

По сути, бэкэнд моего кода получает набор параметров с именем 'p'. Все эти значения взяты из моделей Django.

Когда я пытался переопределить их так:

p['age']=25

Я получил «ошибку модели». Тем не менее, если я напишу:

p.age=25

работает нормально.

Я подозреваю, что внутренне, выбор # 1 пытается установить новое значение для экземпляра класса, созданного Django, который возражает против переопределения, но внутри Python3 просто заменяет экземпляр Django атрибутом "new" то же имя («возраст»), без учета предшествующего происхождения, типа или класса того, что создал Джанго.

Все это в среде RESTful и фактически в тестовом коде. Поэтому, даже если я прав, я не верю, что это что-то меняет для меня в реальности.

Но может ли кто-нибудь объяснить, почему один тип присвоения существующему dict работает, а другой не работает?

...