удаление пользователя из django, но сохранение страниц CMS

Если вы удалите пользователя из Django, то все связанные с ним CMS-страницы также будут удалены. Например. когда кто-то покидает компанию, я не хочу, чтобы его учетные данные были доступны в системе, поэтому удаление пользователя — лучший вариант (только отключение учетной записи доставляет некоторые хлопоты, если у вас много пользователей). Страницы, удаляемые также при удалении пользователя, являются нежелательной функцией. Есть ли (простой) способ обойти это


person Hussam    schedule 15.11.2012    source источник


Ответы (1)


Почему отключение учетной записи доставляет столько хлопот даже многим пользователям? Вам все равно придется найти страницу пользователя в админке, чтобы удалить их, так же, как и отключить.

1) Вы также можете лишить их привилегий и/или отозвать доступ администратора. Все эти функции предназначены для того, чтобы делать именно то, что вы хотите.

2) Вы можете написать пользовательскую функцию удаления, которая выполняет итерацию по всем страницам, подключенным к рассматриваемому пользователю CMS, и устанавливает их отношение к указанному пользователю в NULL, а затем удаляет пользователя.

3) Вы можете отключить проверку внешнего ключа на уровне базы данных.

4) И, наконец, вы можете просто НЕ удалять пользователя. Удаление данных — плохая идея, поэтому существуют такие вещи, как активные флаги. Однажды вы, возможно, захотите оглянуться на то, чем занимался этот удаленный пользователь, и вы будете пинать себя, если все его записи просто исчезнут.

person Craig Labenz    schedule 15.11.2012