2012-07-03 10 views
8

Próbuję to zrobić:import RelatedManager z django.db.models.fields.related

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

bo chcę być w stanie sprawdzić, czy obiekt jest powiązany menedżer tj:

isinstance(obj, RelatedManager) 

jednak wciąż otrzymuję ten błąd: błąd: nie można importować name RelatedManager

Odpowiedz

7

te pokrewne zajęcia manager są tworzone w czasie wykonywania funkcji wewnątrz generatora w django.db.models.fields. powiązane, więc nie można ich bezpośrednio importować. Jeśli chcesz sprawdzić, czy obiekt jest powiązanym menedżerem dla określonej relacji, możesz użyć isinstance(obj, MyModel.my_relation.__class__). Można również użyć parametru hasattr, aby określić, czy obiekt ma wymagane właściwości (ducpakowanie) i całkowicie unikać używania instancji isinstance.

+0

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