2012-10-31 84 views
0

我有錯誤:如何調試Django的驗證,無法找到相關對象

Error: One or more models did not validate: 
auth.permission: 'content_type' has a relation with model <class 'django.contrib.contenttypes.models.ContentType'>, which has either not been installed or is abstract. 

我沒有看到在包裝上的任何地方django.contrib.contenttypes.models.ContentType的參考。

即使所有模型都在逗號內,我也會得到這個錯誤。

我引用用戶多次,但爲什麼content_type錯誤呢?

Django的== 1.4.2

編輯:因爲人們認爲我的模塊被命名爲AUTH,這裏的位置它在整個項目中存在:

models.py

2: from django.contrib.auth.models import User 

settings.py

94: 'django.contrib.auth.middleware.AuthenticationMiddleware', 
112: 'django.contrib.auth', 
+1

你碰巧有一個名爲「auth」的應用程序嗎? –

回答

2

下設置INSTALLED_APPS有

'django.contrib.contenttypes', 

失蹤。從jro的票的鏈接是有幫助的。

1

您的問題很可能是凱朱提到的:現在,你不能打電話給你的應用程序auth。該問題的簡短版本是manage.py取決於其他幾個模塊,其中之一是內置django.contrib.auth。有關更多信息,請參閱this ticket

解決方法是或者引用INSTALLED_APPS元組中的麻煩模塊,或者(如果您碰巧有一個名爲auth的應用程序)重命名導致名稱衝突的模塊。有一個feature request消除這種依賴,但我不會等待現在。

+0

我的應用程序有一個完全不同的名稱,我發現之前有類似的帖子,但事實並非如此。 最讓我感到惱火的是沒有堆棧跟蹤,所以我可以找到確認失敗的確切位置。 – tonlap

+0

雖然有一些與auth模塊,當我刪除它驗證。 – tonlap