Python Django:如何访问ForeignKey';s型?
我需要访问给定模型的Python Django:如何访问ForeignKey';s型?,python,django,Python,Django,我需要访问给定模型的ForeignKey模型 以下是示例代码: 类modelA(models.db): field1=models.ForeignKey('modelbs') modelB类(models.db): 通过 ##下面是伪代码 modelA.get_model_of_fk('field1').objects.all()#获取modelB的所有对象 当然,如果涉及到modelA的实例,这将非常容易。但是如果不创建modelA的实例,我就找不到一种方法来实现它 我当前的解决方案: in
ForeignKey
模型
以下是示例代码:
类modelA(models.db):
field1=models.ForeignKey('modelbs')
modelB类(models.db):
通过
##下面是伪代码
modelA.get_model_of_fk('field1').objects.all()#获取modelB的所有对象
当然,如果涉及到modelA
的实例,这将非常容易。但是如果不创建modelA
的实例,我就找不到一种方法来实现它
我当前的解决方案:
instance\u of_a=modelA.objects.all()[0]
模型b=字段1.类的实例__
model_b.objects.all()#获取modelB的所有对象
我意识到,django本身必须知道aForeignKey
字段链接到的模型,因此我深入研究了django的源代码,发现这似乎是可行的:
modelA.field1.field.rel.to.objects.all() # same as modelB.objects.all()
Django的ContentType框架就是为此而构建的。你可以参考这些文件 就你而言
from django.contrib.contenttypes.models import ContentType
model_type = ContentType.objects.get_for_model(modelA.field1)
model_type.model_class().objects.all() # this will get you all objects of the foreign key model
Django有一个实现这一点的框架。见下面我的答案。您所实现的,在内部可能做同样的事情,但我认为它对于正在发生的事情不是很清楚。