gpt4 book ai didi

django - 为什么删除时我的 GenericForeignKey 不会级联?

转载 作者:行者123 更新时间:2023-12-03 12:08:17 43 4
gpt4 key购买 nike

我正在创建一个自定义评论系统,它可以使用 contenttypes GenericForeignKey 将评论附加到任何模型。

class Comment(models.Model):
body = models.TextField(verbose_name='Comment')
user = models.ForeignKey(User)
parent = models.ForeignKey('self', null=True, blank=True)
created = models.DateTimeField(auto_now_add=True)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')

我的理解是,当注释所附加的模型被删除时,删除应该级联并删除注释。

不幸的是,这并没有发生,我很难过。是否有任何常见原因会导致默认删除行为发生变化?

最佳答案

不,文档没有这么说。它说的是,如果你定义一个 GenericRelation在模型上 - 即 GenericForeignKey 的背面- 那么当具有泛型 FK 的项被删除时,具有 GenericRelation 的项也将被删除。

Unlike ForeignKey, GenericForeignKey does not accept an on_delete argument to customize this behavior; if desired, you can avoid the cascade-deletion simply by not using GenericRelation, and alternate behavior can be provided via the pre_delete signal.

关于django - 为什么删除时我的 GenericForeignKey 不会级联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803018/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com