У меня есть приложение настроек внутри моего проекта, и каждая запись в таблице DB, которую использует это приложение, представляет собой конкретную настройку. И важно, чтобы настройки всегда были согласованными, поэтому я ищу способ защитить их от случайного удаления пользователями административной панели или с помощью багги-кода.Как защитить объекты от удаления в Django?
Другие случаи для этой функции могут быть: сообщения об ошибках, хранящиеся в БД, и доступные для редактирования на админ-сайте или шаблоны для сообщений электронной почты для пользователей веб-сайта.
Возможные решения, которые я имею в виду:
- Храните каждый параметр в виде столбца таблицы или нескольких столбцов, поэтому таблица будет расширяться по столбцам, а не по строкам. Плюсы - простые, надежные, минус - уродливые
- Решение на стороне БД.
- Реализация какой-либо системы разрешений, которая будет контролировать доступ к CRUD-операциям на основе владения объектами, таких как разрешения файловой системы в Linux. Плюсы - менее уродливые, абстрактные от БД, Минусы - я еще не знаю, как сделать легкую и элегантную реализацию его для Django.
У кого-нибудь есть идеи?
Что делать, если администратор технологически неграмотен (не только pythonistas использует веб-сайты)? Или, если во время разворота некоторые данные станут непоследовательными, это может привести к ухудшению функциональности. –
Я не хочу быть пренебрежительным, но очень сложно кодировать социальные проблемы, такие как «некомпетентность администратора». Такие проблемы чрезвычайно устойчивы к техническим решениям. – msw
«Взломать» для этого будет что-то вроде примечания к клиенту: «Я даю вам привилегии суперпользователя по вашему запросу. Имейте в виду, что это дает вам возможность подключить систему, которую я построил для вас, Sicromoft может «Ответственность за ущерб, который вы причиняете своей собственной системе». Я уверен, что юрист сделает это более красивым, чем я. – msw