Значение AUTH_PROFILE_MODULE в django, когда модели - это не файл, а каталог - PullRequest
2 голосов
/ 01 февраля 2012

У меня было следующее: (это работало как ожидалось)

# In <..>/profile/models.py
class UserProfile()
#In settings.py
AUTH_PROFILE_MODULE = "profile.UserProfile"

У меня было следующее: (не работает)

# In <..>/profile/models/__init__.py
class UserProfile()
AUTH_PROFILE_MODULE = "profile.UserProfile"

Кажется, что get_profile () вызывает get_model, которыйищет файл models.py в виде файла и пытается загрузить его.

Вот ошибка:

повышение SiteProfileNotAvailable («Невозможно загрузить профиль» SiteProfileNotAvailable: Невозможно загрузить модель профиляпроверьте AUTH_PROFILE_MODULE в настройках вашего проекта

Причина в том, что у меня много классов в приложении профиля, и они все в разных файлах и импортированы в:

<..>/profile/models/__init__.py

Это работает для всегоиначе, кроме get_profile ().

Любой намек на обходной путь?

1 Ответ

5 голосов
/ 01 февраля 2012

иногда django может запутаться в именах приложений, поэтому убедитесь, что у вас есть:

class UserProfile(Model):
    ....
    class Meta:
        app_label = 'profile'

Это обеспечит поиск профиля с помощью профиля. UserProfile

...