2

私は以下を持っていました:(それは期待通りに機能しました)

# 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()は、models.pyをファイルとして探しているget_modelを呼び出し、それをロードしようとしているようです。

エラーは次のとおりです。

raise SiteProfileNotAvailable('プロファイルをロードできません'SiteProfileNotAvailable:プロファイルモデルをロードできません。プロジェクト設定でAUTH_PROFILE_MODULEを確認してください

その理由は、プロファイルアプリに多くのクラスがあり、それらはすべて異なるファイルにあり、次の場所にインポートされているためです。

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

これは、get_profile()以外のすべてで機能します。

回避策のヒントはありますか?

4

1 に答える 1

5

djangoはアプリ名について混乱することがあるので、次のことを確認してください。

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

これにより、プロファイルをprofile.UserProfileで検索できるようになります。

于 2012-02-01T14:21:35.287 に答える