Django GenericForeignKey 使用related_name

Posted

技术标签:

【中文标题】Django GenericForeignKey 使用related_name【英文标题】:Django GenericForeignKey using related_name 【发布时间】:2015-01-18 06:38:29 【问题描述】:

我正在尝试重构我的架构,以便当前简单的ForeignKey 字段变为GenericForeignKey。所以,在我的模型中,这是:

ref_track = models.ForeignKey(Track, unique=False, related_name='posts_by_ref')

...变成这样:

ref_content_type = models.ForeignKey(ContentType)
ref_id = models.PositiveIntegerField()
ref_object = generic.GenericForeignKey('ref_content_type', 'ref_id')

以前我在许多数据库查询中使用posts_by_ref,例如检查附加到轨道的帖子的提交状态(帖子对象是上述字段所在的位置)。但是,我知道在使用 GenericForeignKey 时不支持 related_name,那么还有其他方法可以复制这种行为吗?

【问题讨论】:

【参考方案1】:

你可以看看Reverse generic relations

【讨论】:

以上是关于Django GenericForeignKey 使用related_name的主要内容,如果未能解决你的问题,请参考以下文章

Django GenericForeignKey 使用related_name

使用 GenericForeignKey 预取模型

Django content-type 使用

Django content-type 使用

如何使用另一个查询作为可能值通过 GenericForeignKey-Field 过滤查询?

Django:内置组件Content-Type