Обновление или удаление в таблице "users_user" нарушает ограничение внешнего ключа "articles_article_users_user_id "id=5, все еще ссылающегося на таблицу "articles_arti

Я работаю с Django v4.* и связал 2 таблицы/модели Users и Articles, и моя цель - при удалении пользователя я не хочу удалять статью или наоборот, поэтому я сослался на пользователя on_delete=models.DO_NOTHING в модели Article, но я получаю эту ошибку, когда пытаюсь удалить пользователя, мне кажется, что DO_NOTHING работает не так, как я думал? Как я могу передать это и добиться того, что я хочу сделать, не получая ошибку ограничения? Спасибо

class Article(models.Model):
     title = models.CharField(max_length=355)
     author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING, 
     related_name='articles')
     .....

В большинстве БД вы не можете ссылаться на несуществующий PK. Если вы хотите оставить статью после удаления пользователя, вам нужно сделать что-то вроде этого:

class Article(models.Model):
     title = models.CharField(max_length=355)
     author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, 
     related_name='articles')
 .....

Таким образом, при удалении пользователя со ссылкой, автор будет установлен в null в БД.

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