У меня есть проблема:Ошибка с импортом Python
Я использую этот пакет: https://github.com/ulule/django-badgify
Он прекрасно работает, но теперь мне нужно создать модель пользовательского Badge. Я сделал все, как и в документации:
main.models.py:
from badgify.models.base.badge import Badge as BaseBadge
class GuidaBadge(BaseBadge):
class Meta(BaseBadge.Meta):
abstract = False
settings.py:
BADGIFY_BADGE_MODEL = "main.models.GuidaBadge"
Но это может вызвать ошибки:
File "D:\virtenvs\codeguida\codeguida\main\models.py", line 11, in <module>
from badgify.models.base.badge import Badge as BaseBadge
File "D:\virtenvs\codeguida\lib\site-packages\badgify\models\__init__.py", line 8, in <module>
Badge = load_class(settings.BADGE_MODEL)
File "D:\virtenvs\codeguida\lib\site-packages\badgify\utils.py", line 88, in load_class
raise exceptions.ImproperlyConfigured(txt)
django.core.exceptions.ImproperlyConfigured: Backend module "main.models" does not define a "GuidaBadge" class.
Это is, https://github.com/ulule/django-badgify/blob/master/badgify/utils.py#L79
Кажется, что Python не может найти класс GuidaBadge. Так что я пытался использовать функцию load_class() в оболочке - это возвращать правильный класс ...
Я думаю, что причина ошибки, таким образом:
Как мы можем видеть в TraceBack, во-первых:
File "D:\virtenvs\codeguida\codeguida\main\models.py", line 11, in <module>
from badgify.models.base.badge import Badge as BaseBadge
Программа просит питона импортировать Badge
класс из пакета badgify
Затем Python попытался импортировать его, и сталкиваются с
File "D:\virtenvs\codeguida\lib\site-packages\badgify\models\__init__.py", line 8, in <module>
Badge = load_class(settings.BADGE_MODEL)
Здесь программа запрашивает python для загрузки_класса из строки (которая хранится в настройках, например. 'main.models.GuidaBadge')
Но Python еще не выполнил эту часть моделей. И это вызывает ошибку, что в «main.models» нет класса «GuidaBadge».
Я прав?
Как это исправить?
Это может быть круговой импорт. Посмотрите, что вы импортируете в настройках, чтобы увидеть, есть ли у вас какие-либо круговые зависимости. –
Можете объяснить еще кое-что? Пожалуйста? –