【发布时间】:2021-09-30 19:33:01
【问题描述】:
我正在创建一个可重复使用的 django 应用程序,其中包含一个带有 GenericForeignKey 的模型,我需要将其级联删除。
此模型可以附加到任何其他模型。我无法控制目标模型类,因为它在应用程序之外。这意味着我不能向其中添加 GenericRelation 字段,也不能强制用户添加它,因为目标可能在另一个第三方应用程序中。
假设我们有这样的模型(无法控制 Post 和 PostGroup):
class Tag(models.Model):
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
object = GenericForeignKey()
class PostGroup(models.Model):
title = models.CharField(max_length=255)
class Post(models.Model):
title = models.CharField(max_length=255)
group = models.ForeignKey(PostGroup, on_delete=models.CASCADE)
如果PostGroup查询集被删除,有没有办法删除Tag?
例如不仅是post_group.delete(),还有PostGroup.objects.delete()。
【问题讨论】:
标签: django cascading-deletes generic-foreign-key django-generic-relations generic-relations