我需要访问给定模型的ForeignKey
模型。
这是示例代码:
class modelA(models.db):
field1 = models.ForeignKey('modelB')
class modelB(models.db):
pass
## below is the pseudo code
modelA.get_model_of_fk('field1').objects.all() # fetch all objects of modelB
当然,如果涉及到
modelA
的实例,它将非常容易。但是,如果不创建modelA
实例,我就是找不到方法。我当前的解决方案:
instance_of_a = modelA.objects.all()[0]
model_b = instance_of_a.field1.__class__
model_b.objects.all() # fetch all objects of modelB
最佳答案
Django的ContentType框架就是为此而构建的。您可以参考文档here。
就你而言
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
关于python - Django:如何访问ForeignKey的模型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9543887/