我正在尝试这样做:
from django.db.models.fields.related import RelatedManager
因为我希望能够测试一个对象是否是一个相关的经理,即:
isinstance(obj, RelatedManager)
但是我一直收到这个错误: 错误:无法导入名称RelatedManager
答案 0 :(得分:6)
相关的管理器类是在运行时在django.db.models.fields.related中的生成器函数内创建的,因此您无法直接导入它们。如果要检查对象是否是特定关系的相关管理器,可以使用isinstance(obj, MyModel.my_relation.__class__)
。您还可以使用hasattr
来确定对象是否具有您需要的属性(ducktyping)并避免完全使用isinstance。