Проблема с обновлением полей, доступных только для чтения, в админке Django: флаги не сохраняются

Я работаю над интерфейсом администратора Django, в котором некоторые поля (в частности, флаги статуса рецензии, такие как is_pending_review_section_title_en и is_pending_review_section_title_uk) должны быть помечены как доступные только для чтения в интерфейсе администратора, но при этом программно обновляться при изменении содержимого.

Я реализовал логику динамического определения полей как доступных только для чтения с помощью метода get_readonly_fields внутри инлайнового класса администратора (SectionInline). Хотя в интерфейсе поля корректно отображаются как предназначенные только для чтения, проблема возникает, когда я пытаюсь обновить эти поля в методе save_model класса PageAdmin (или даже в формах). В коде флаги вроде бы установлены правильно, но после сохранения они не сохраняются в базе данных.

Вот краткое описание того, что я пробовал:

1.  Marked fields as read-only using get_readonly_fields — This works for the admin UI.
2.  Tried updating the fields programmatically inside save_model in the PageAdmin class and verified the values through logging. The flags are set to True, but after saving, the values in the database remain unchanged.
3.  Commented out form save logic to check if it’s interfering with saving, but the issue persists.
4.  Ensured flags are not present in forms to avoid user interaction.

Что может быть причиной того, что поля не сохраняются корректно, хотя они обновляются программно в коде? Существуют ли какие-либо особые соображения для обновления полей, доступных только для чтения, в админке?

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