0

現在のモデルに関連するすべてのモデルを取得する必要があります。リレーションは、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、このモデルとその関連モデルに変更があるたびに( some を使用してpost_save)キャッシュを無効にする必要があることです。

4

1 に答える 1

2

オプションから始めることができ_metaます。

[rel.model for rel in MyModel._meta.get_all_related_objects()]
于 2014-09-02T19:21:51.813 に答える