В прошлом было несколько вопросов по этому поводу, но с ростом Django
появилось много новых функций базы данных.
Я ищу способ, чтобы никто не мог удалить model
из любого места.
У меня есть модель Product
, и я не хочу, чтобы продукт был удален из базы данных.
Я понимаю, что переопределение delete
иногда является хорошим способом, но я бы хотел сделать это на уровне database
, чтобы не было возможности удалить его из shell_plus
или из любого другого источника.
В Postgres
, думаю, есть способ:
CREATE RULE product_del_protect AS ON DELETE TO product DO INSTEAD NOTHING;
Но я бы хотел сделать это через Django
, чтобы это затронуло каждую перенесенную базу данных.
Может быть способ сделать это в model
или в пользовательском migration
.
А лучше было бы поднять ошибку.