Как не удалять сообщения и комментарии удаленного пользователя в django?

Здравствуйте, я недавно изучаю django и make board

Мой вопрос был в том, что

  1. how can do not delete post and comment whose deleted users

  2. how can display deleted user's name in post and comment like 'deleted user' in board's user name (not blank or Null)

да, я знаю, что в этом коде пользователь связан с постом и комментарием через внешний ключ и on_delete=models.CASCADE и если пользователь удалил пост и комментарий удаляется автоматически

Так как я могу подключить эту таблицу? Используя ник? Он был уникальным, но может быть изменен

я хочу знать, как решить эту проблему, нужны советы

class Post(models.Model):
    
        author = models.ForeignKey(User, on_delete=models.CASCADE)
        title = models.CharField(max_length=200)
        content = models.TextField()
        create_date = models.DateTimeField(default= timezone.now())
        
        def __str__(self):
            return self.title      
              
class Comment(models.Model):
    
        author = models.ForeignKey(User, on_delete=models.CASCADE)
        post = models.ForeignKey(Post, on_delete=models.CASCADE)
        content = models.TextField()
        create_date = models.DateTimeField(default=timezone.now())

Использование on_delete=models.DO_NOTHING должно решить проблему.

class Post(models.Model):

    author = models.ForeignKey(User, on_delete=models.DO_NOTHING)
    title = models.CharField(max_length=200)
    content = models.TextField()
    create_date = models.DateTimeField(default= timezone.now())
    
    def __str__(self):
        return self.title      
          
class Comment(models.Model):

    author = models.ForeignKey(User, on_delete=models.DO_NOTHING)
    post = models.ForeignKey(Post, on_delete=models.DO_NOTHING)
    content = models.TextField()
    create_date = models.DateTimeField(default=timezone.now())
Вернуться на верх