gpt4 book ai didi

python - Django 模型继承 : ForeignKey on parent, 没有对子模型的 related_name 访问

转载 作者:太空宇宙 更新时间:2023-11-04 10:04:38 24 4
gpt4 key购买 nike

示例情况如下:

# models.py
class Form(models.Model):
name = models.CharField()

class A(models.Model):
form = models.ForeignKey(Form)

class B(A):
name = models.CharField()

# view.py
form = Form.objects.get(id=1)
form.a_set.all() # works
form.b_set.all() # doesn't work

我想通过父类 A 外键访问所有相关的 B 对象,但我似乎无法这样做。如果我通过 A 访问它们,那么我只会得到通用的父类查询集。谢谢。

最佳答案

当您从具体模型继承时,ParentChild 模型将有两个表(与从抽象模型继承不同)。

Django 将隐式创建一个OneToOneFieldChildParent 模型,命名为parent_ptr ,因此:

B.objects.filter(a_ptr__form=form)
# B.objects.filter(a_ptr__form_id=1)

将为您提供所需的QuerySet

关于python - Django 模型继承 : ForeignKey on parent, 没有对子模型的 related_name 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41653525/

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