在django中获取与此型号相关的所有型号(via ForeignKey,ManyToMany)

时间:2014-09-02 15:01:16

标签: python django django-models related-content

我必须获得与我当前模型相关的所有模型。关系可以是ForeignKey,ManyToManyField或OneToONeField,来自此模型或此模型。

例如:

我有一个模特:

class MyModel(models.Model):
 field = models.Charfield(...)
 type = models.ForeignKey('Type', ...)

class AnotherModel(models.Model):
 label = models.ForeignKey(MyModel, ...)
 ...

class Type(models.Model):
 name = models...
 ...

我需要找到模型MyModel的相关模型,这意味着如果我有一个函数get_related_modelsget_related_models(MyModel)应该返回[AnotherModel,Type]

注意:最终的用途是,当此模型及其相关模型发生任何变化时,我需要使MyModel的缓存无效(使用一些post_save)。

1 个答案:

答案 0 :(得分:2)

您可以从_meta选项开始。

[rel.model for rel in MyModel._meta.get_all_related_objects()]