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本身必须知道a
ForeignKey
字段链接到的模型,因此我深入研究了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有一个实现这一点的框架。见下面我的答案。您所实现的,在内部可能做同样的事情,但我认为它对于正在发生的事情不是很清楚。