从django.db.models.fields.related导入RelatedManager

时间:2012-07-03 23:48:21

标签: django django-managers

我正在尝试这样做:

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

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

isinstance(obj, RelatedManager)

但是我一直收到这个错误: 错误:无法导入名称RelatedManager

1 个答案:

答案 0 :(得分:6)

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