11

我正在尝试这样做:

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

因为我希望能够测试一个对象是否是相关的管理器,即:

isinstance(obj, RelatedManager)

但是我不断收到此错误:错误:无法导入名称相关管理器

4

1 回答 1

10

相关的管理器类是在运行时在 django.db.models.fields.related 的生成器函数中创建的,因此您不能直接导入它们。如果要检查对象是否是特定关系的相关管理器,可以使用isinstance(obj, MyModel.my_relation.__class__). 您还可以使用hasattr来确定对象是否具有您需要的属性(ducktyping)并完全避免使用 isinstance。

于 2012-07-04T00:18:57.723 回答