2010-05-08 2 views
0

Если вы знакомы с Django, вы знаете, что у них есть система аутентификации с User model. Конечно, у меня есть много других таблиц, которые имеют внешний ключ к этой модели User.Как удалить Django? (транзакции mysql)

Если я хочу удалить этого пользователя, как мне создать скрипт (или через сам mysql), чтобы удалить каждую таблицу, связанную с этим пользователем?

Мое единственное беспокойство в том, что я могу сделать это вручную ... но если я добавлю таблицу, но я забыл добавить эту таблицу в свою операцию DELETE ... тогда у меня есть строка, которая ссылается на удаленный, -Существующий пользователь.

ответ

0

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

Это прост в тестировании. В администраторе перейдите к удалению пользователя. На странице подтверждения вы увидите список всех зависимых записей в системе. Вы можете использовать это в любое время в качестве быстрого теста, чтобы узнать, что зависит от того, что (пока вы на самом деле не нажимаете «Подтвердить»).

Если вы выполняете удаления из кода вида с помощью .delete(), все зависимые объекты будут автоматически удалены без возможности подтверждения.

Из docs:

Когда Джанго удаляет объект, он эмулирует поведение SQL ограничения ON DELETE CASCADE - в Другими словами, любые объекты, которые имели внешние ключи, указывая на объект до будет удален вместе с .

Смежные вопросы