2011-10-21 43 views
1

我很確定數據庫已經創建,並且我已經正確執行了python manage.py syncdb,但仍然在嘗試訪問http://127.0.0.1:8000/admin/時遇到此錯誤。這裏有一些細節。試圖使用管理員時爲什麼「沒有這樣的表:django_session」?

Request Method: GET 
Request URL: http://127.0.0.1:8000/admin/ 

Django Version: 1.3.1 
Python Version: 2.7.1 
Installed Applications: 
['django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'blog', 
'django.contrib.admin'] 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware') 

Exception Type: DatabaseError at /admin/ 
Exception Value: no such table: django_session 
+1

你可以看到你的數據庫中的表?你使用什麼引擎? – sberry

+0

我敢打賭,你沒有運行'syncdb' - 是否運行解決了這個問題? –

+0

啊..我平時的錯誤。我忽略了它所讀取的部分,即使在WINDOWS上也使用正斜槓。 –

回答

3

sqlite的路徑通常是問題。

'NAME': 'c:/path/to/sqlite.db' 
2

試試這個

from os.path import dirname, abspath 
ROOT = dirname(abspath(__file__)).replace('\\', '/') + '/' 

print "self.__name__: " + __name__ 
print "self.__file__: " + __file__ 
print "ROOT: " + ROOT 

import django 
print "django.__path__: " 
print (django.__path__) 

# Contact for error messages etc. - dont forget the ',' after the first entry 

ADMINS = (('dev', '[email protected]'),) 
MANAGERS = ADMINS 

DATABASES = { 
'default': { 
    'ENGINE': 'django.db.backends.sqlite3',   
'NAME': ROOT + 'project.db',      
    'USER': '', 'PASSWORD': '', 
    'HOST': '', 'PORT': '',      
} 
} 

,並檢查是否需要+ '/' +之前,您的操作系統的數據庫名稱。

+0

peters的方法爲我工作,儘管使用linux並讓我的數據庫位於與manage.py相同的目錄中我將第二行更改爲ROOT = dirname(abspath(__ file__ +'/ ..'))+'/ 「' – antiplex

-1

在下面的順序執行工作正常:

首先

python manage.py migrate 

然後

python manage.py runserver. 

因爲我們正在運行的服務器之前將所有遷移。

相關問題