11

私はこれをやろうとしています:

from django.db.models.fields.related import RelatedManager

オブジェクトが関連するマネージャーであるかどうかをテストできるようにしたいからです。

isinstance(obj, RelatedManager)

ただし、次のエラーが発生し続けます:エラー:名前RelatedManagerをインポートできません

4

1 に答える 1

10

関連するマネージャー クラスは、実行時に django.db.models.fields.related のジェネレーター関数内で作成されるため、それらを直接インポートすることはできません。オブジェクトが特定の関係の関連マネージャーであるかどうかを確認したい場合は、 を使用できますisinstance(obj, MyModel.my_relation.__class__)。オブジェクトに必要なプロパティがあるかどうかを判断するために使用することもできhasattr(ダックタイピング)、 isinstance を完全に使用しないようにすることもできます。

于 2012-07-04T00:18:57.723 に答える