Я работаю над приложением Django, которое выполняет некоторые интроспекции класса заранее для всех моделей.
Кажется, это работает нормально, если эти модели определены в models.py, но если я определю их в моемtests.py, __init__.py не видит эти модели.
Цель состоит в том, чтобы иметь словарь уровня модуля, который запускается один раз при загрузке __init__.py:
perms_dict = {}
for cls in Models.__subclasses__():
add some stuff to perms_dict
Когдапри выполнении тестов этот блок кода запускается дважды, в первый раз он не видит модели в tests.py и второй раз видят модели tests.py.К сожалению, когда функция вызывается в файле __init__.py, она почему-то использует perms_dict из начального запуска и не включает модели из tests.py.
Самое простое решение - этоимпортируйте tests.py изнутри __init__.py, чтобы он знал об этих моделях, но, очевидно, при фактическом использовании это нежелательно.
Репозиторий Git доступен по адресу: git: //github.com/philipkimmey/django-cerberus.git
Спасибо!