簡體   English   中英

如何不刪除 django 中已刪除用戶的帖子和評論?

[英]How can do not delete post and comment whose deleted user in django?

您好我最近研究 django 並制作電路板

我的問題是

  1. 怎樣才能不刪除已刪除用戶的帖子和評論

  2. 如何在帖子和評論中顯示已刪除用戶的姓名,如板的用戶名中的“已刪除用戶”(不是空白或 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())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM