Django django.протестируйте django.db.models.поля.related_descriptors.ManyRelatedManager

#python #django

#питон #django

Вопрос:

Пожалуйста, укажите тип: ‘django.db.models.поля.related_descriptors.Много связанных менеджеров».

Другими словами, как импортировать модуль, чтобы утверждать, что поле ‘user.groups’ имеет тип ‘django.db.models.поля.related_descriptors.Много связанных менеджеров»?

 from django.db.models.fields import related_descriptors

# AttributeError: 'module' object has no attribute 'ManyRelatedManager'
self.assertIsInstance(user.groups, related_descriptors.ManyRelatedManager)

print(type(dummy_user.groups)) # <class 'django.db.models.fields.related_descriptors.ManyRelatedManager'>
 

Вот в чем ошибка:
Ошибка атрибута: объект ‘module’ не имеет атрибута ‘ManyRelatedManager

Спасибо

Комментарии:

1. Попробовал мое решение?

Ответ №1:

Вы не можете сделать такое утверждение на user.groups и related_descriptors.ManyRelatedManager .

ManyRelatedManager Класс недоступен с помощью import like from django.db.models.fields import related_descriptors , потому что, если вы посмотрите на исходный код django, ManyRelatedManager он находится внутри create_forward_many_to_many_manager функции.

PS Я не вижу никаких причин, по которым вы хотите проверить тип user.groups . Это всегда одно и то же и уже проверено тестами django.