我刚刚在我的博客应用中实现了评论功能。我面临的问题是,如果我尝试删除有评论的博客文章,我会收到 postgres 错误
如果我正确理解此错误,我将无法删除该帖子,因为该评论引用了该帖子 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)