获取django中所有相关的模型类

时间:2014-08-05 14:43:54

标签: python django django-models

我正在尝试获取具有外键关系的所有相关模型类实例的列表,以便我可以执行类似model._meta.fields的操作..

这是我到目前为止所做的:

for related_object in A._meta.get_all_related_objects():
        related_name = related_object.field.rel.related_name

但我不确定如何获得相关的模型类..

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

在上一个Django版本(1.8)中,options对象有一个名为related_objects的属性;它将返回一个带有所有外部关系定义的iterable到模型。可以检查每个这样的关系的属性:

for relation in A._meta.related_objects:
    print(relation.related_model)    # model which has foreign keys to A
    print(relation.field.name)       # name of the foreign key field

iterable related_objects表示A模型的“反向”关系(ManyToOneRel,ManyToManyRel)。

如果不明显,则由字段定义而不是模型定义驱动,这意味着相关模型将具有与其所具有的A模型一样多的ForeingKey字段条目。

答案 1 :(得分:0)

您可以使用.model获取班级名称

for related_object in A._meta.get_all_related_objects():
    print related_object.model

也许this问题/答案对您也有用。