2012-07-03 42 views
8

Tôi đang cố gắng để làm điều này:nhập khẩu RelatedManager từ django.db.models.fields.related

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

vì tôi muốn để có thể kiểm tra nếu một đối tượng là một người quản lý tức là liên quan:

isinstance(obj, RelatedManager) 

tuy nhiên tôi tiếp tục nhận được lỗi này: lỗi: không thể nhập tên RelatedManager

Trả lời

7

Các lớp quản lý có liên quan được tạo ra trong thời gian chạy bên trong các chức năng máy phát điện trong django.db.models.fields. liên quan, do đó bạn không thể nhập chúng trực tiếp. Nếu bạn muốn kiểm tra xem đối tượng có phải là người quản lý có liên quan cho một mối quan hệ cụ thể bạn có thể sử dụng isinstance(obj, MyModel.my_relation.__class__) hay không. Bạn cũng có thể sử dụng hasattr để xác định xem đối tượng có thuộc tính bạn cần (ducktyping) và tránh sử dụng isinstance hoàn toàn.

+0

isinstance (obj, MyModel.reversename_set.related_manager_cls) – mrvol

Các vấn đề liên quan