2012-02-01 78 views
2

,我有以下幾點:(它的工作如預期)AUTH_PROFILE_MODULE值當模特不是一個文件,而是一個目錄

# 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()

任何暗示的解決方法?

+0

您提到,您已經移動AUTH_PROFILE_MODULE = 「profile.UserProfile」添加到模塊<..> /profile/models/__init__.py中,但是您是否還在settings.py模塊中保留一個?導入設置並查看settings.AUTH_PROFILE_MODULE是否已定義並具有您所期望的值。 – Meitham 2012-02-01 12:41:11

回答

5

有時Django會弄不清楚appnames,所以請確保您有:

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

這將確保配置文件可以用profile.UserProfile擡起頭

+0

它是「app_label」而不是「app_name」。 – 2012-02-09 23:36:15

+1

謝謝,修復答案 – Thomas 2012-02-10 10:28:54

相關問題