Django Postgres - 违反外键约束(删除带有评论的帖子)

时间:2021-06-23 15:34:06

标签: django postgresql

我刚刚在我的博客应用中实现了评论功能。我面临的问题是,如果我尝试删除有评论的博客文章,我会收到 postgres 错误 enter image description here

如果我正确理解此错误,我将无法删除该帖子,因为该评论引用了该帖子 ID。为了解决这个问题,我想我只需将 on_delete=models.CASCADE 添加到模型中。不幸的是,这并没有解决问题。我的印象是,如果删除 FK,使用 CASCADE 会删除整个模型。

两个模型。

class Post(models.Model):
    title = models.CharField(max_length=100)
    image = models.ImageField(default='default.jpg', upload_to='hero_car_image')
    aspiration = models.CharField(max_length=55, choices=ASPIRATION)
    content = RichTextUploadingField(blank=True, null=True)
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    manufacture = models.ForeignKey(Manufactures, on_delete=models.CASCADE)
    model = models.ForeignKey(Models, on_delete=models.CASCADE)

class Comment(models.Model):
    comment = models.TextField()
    created_on = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    post = models.ForeignKey('Post', on_delete=models.CASCADE)

0 个答案:

没有答案