2010-07-14 64 views
1
DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
     'NAME': 'djangobb',      # Or path to database file if using sqlite3. 
     'USER': 'root',      # Not used with sqlite3. 
     'PASSWORD': 'root',     # Not used with sqlite3. 
     'HOST': '',      # Set to empty string for localhost. Not used with sqlite3. 
     'PORT': '',      # Set to empty string for default. Not used with sqlite3. 
    } 
} 

任何想法?我不能manage.py運行執行syncdb命令:爲什麼Django抱怨我還沒有設置我的ENGINE?

Environment: 

Request Method: GET 
Request URL: http://localhost:8000/admin/ 
Django Version: 1.2.1 
Python Version: 2.5.4 
Installed Applications: 
['django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.sitemaps', 
'django.contrib.admin', 
'django.contrib.admindocs', 
'registration', 
'django_authopenid', 
'djangobb_forum', 
'djapian', 
'messages'] 
Installed Middleware: 
('django.middleware.cache.UpdateCacheMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.locale.LocaleMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.csrf.middleware.CsrfMiddleware', 
'django_authopenid.middleware.OpenIDMiddleware', 
'django.middleware.cache.FetchFromCacheMiddleware', 
'django.middleware.transaction.TransactionMiddleware', 
'djangobb_forum.middleware.LastLoginMiddleware', 
'djangobb_forum.middleware.UsersOnline') 


Traceback: 
File "C:\Python25\Lib\site-packages\django\core\handlers\base.py" in get_response 
    80.      response = middleware_method(request) 
File "C:\Python25\Lib\site-packages\django\middleware\locale.py" in process_request 
    16.   language = translation.get_language_from_request(request) 
File "C:\Python25\Lib\site-packages\django\utils\translation\__init__.py" in get_language_from_request 
    90.  return real_get_language_from_request(request) 
File "C:\PYTHON25\lib\site-packages\django\utils\functional.py" in _curried 
    55.   return _curried_func(*(args+moreargs), **dict(kwargs, **morekwargs)) 
File "C:\Python25\Lib\site-packages\django\utils\translation\__init__.py" in delayed_loader 
    36.  return getattr(trans, real_name)(*args, **kwargs) 
File "C:\Python25\Lib\site-packages\django\utils\translation\trans_real.py" in get_language_from_request 
    339.   lang_code = request.session.get('django_language', None) 
File "C:\Python25\Lib\site-packages\django\contrib\sessions\backends\base.py" in get 
    63.   return self._session.get(key, default) 
File "C:\Python25\Lib\site-packages\django\contrib\sessions\backends\base.py" in _get_session 
    172.     self._session_cache = self.load() 
File "C:\Python25\Lib\site-packages\django\contrib\sessions\backends\db.py" in load 
    20.     expire_date__gt=datetime.datetime.now() 
File "C:\Python25\lib\site-packages\django\db\models\manager.py" in get 
    132.   return self.get_query_set().get(*args, **kwargs) 
File "C:\Python25\Lib\site-packages\django\db\models\query.py" in get 
    336.   num = len(clone) 
File "C:\Python25\Lib\site-packages\django\db\models\query.py" in __len__ 
    81.     self._result_cache = list(self.iterator()) 
File "C:\Python25\Lib\site-packages\django\db\models\query.py" in iterator 
    269.   for row in compiler.results_iter(): 
File "C:\Python25\Lib\site-packages\django\db\models\sql\compiler.py" in results_iter 
    672.   for rows in self.execute_sql(MULTI): 
File "C:\Python25\Lib\site-packages\django\db\models\sql\compiler.py" in execute_sql 
    717.    sql, params = self.as_sql() 
File "C:\Python25\Lib\site-packages\django\db\models\sql\compiler.py" in as_sql 
    56.   out_cols = self.get_columns(with_col_aliases) 
File "C:\Python25\Lib\site-packages\django\db\models\sql\compiler.py" in get_columns 
    185.      col_aliases) 
File "C:\Python25\Lib\site-packages\django\db\models\sql\compiler.py" in get_default_columns 
    273.     r = '%s.%s' % (qn(alias), qn2(field.column)) 
File "C:\Python25\Lib\site-packages\django\db\models\sql\compiler.py" in quote_name_unless_alias 
    43.   r = self.connection.ops.quote_name(name) 
File "C:\Python25\lib\site-packages\django\db\backends\dummy\base.py" in complain 
    15.  raise ImproperlyConfigured("You haven't set the database ENGINE setting yet.") 

Exception Type: ImproperlyConfigured at /admin/ 
Exception Value: You haven't set the database ENGINE setting yet. 
+0

你確定你正在運行django 1.2 w /新的數據庫配置樣式嗎? – sdolan 2010-07-14 18:19:04

+0

在數據庫配置方面,1.1和1.2之間是否存在顯着差異? Djangobb說它需要Django 1.1,但我之前安裝了Django 1.2。那可能就在那裏。 – 2010-07-14 18:24:22

+0

是的,你在那裏使用的配置是在將MultiDB支持添加到1.2時引入的。 – sdolan 2010-07-14 18:27:28

回答

2

我把我的舊的方式和新途徑,因此,它不是Django的特定版本:

DATABASE_ENGINE = 'django.db.backends.sqlite3' 
DATABASE_NAME  = '/path/to/db/foo.sqlite3' 
DATABASE_USER  = '' 
DATABASE_PASSWORD = '' 
DATABASE_HOST  = '' 
DATABASE_PORT  = '' 

DATABASES = { 
    'default': { 
    'ENGINE': DATABASE_ENGINE, 
    'NAME':  DATABASE_NAME, 
    'USER':  DATABASE_USER, 
    'PASSWORD': DATABASE_PASSWORD, 
    'HOST':  DATABASE_HOST, 
    'PORT':  DATABASE_PORT, 
    } 
} 

但是,是的,我'd仔細檢查你的安裝是否是你認爲的版本。

UPDATE:

您可能試圖導入從設置一些管理員模塊中,並在設置導入管理模塊。有時循環導入導致上述情況。

特別是,使用設置中的反向(「URL名稱」)可能導致這一點,因爲它最終迫使它來看看一些深層次暗的「網站」表...

UPDATE2 :

對不起,來解釋上述:

  • 的圓形進口是當從模塊B模塊A的進口,並在一定程度上,模塊B也期間,需要從模塊A的東西在某一點第二層次的深度,它通常以某種難以理解的方式失敗。
  • Reverse()是將url的名稱(urls.py中的name =「foo」)轉換回url本身的函數。這使得在設置或管理模塊中並不總是可能的呼叫。

UPDATE3:

看着djangobb.org/ticket/81你指出,打破一些術語下來票,CSRF令牌是用於添加跨站請求僞造保護模板標籤:

http://docs.djangoproject.com/en/dev/ref/contrib/csrf/

它一般是這樣的,從我的一個項目到grep:

# grep -ri csrf . 
    ./registration/login.html: <form method="post" action="{% url django.contrib.auth.views.login %}">{% csrf_token %} 

雖然我不知道djapian是我自己,但通常意味着直接安裝(通常是svn)中繼 - 或者「最新的,在版本中檢查,這比新的任何版本,並可能經過測試的官方版本「。通常,這需要執行一些操作,如svn checkout http://wherever.com/someproject/trunk/ ./someproject,然後轉到該目錄進行安裝。

+1

+1:我們一直在關注整個凌晨:)。這是一個很好的建議,我需要返回並更新一些我們使用1.2創建的應用程序,但也可以使用w/1.1。 – sdolan 2010-07-14 18:30:25

+0

:-)謝謝。當我從1.1移動到1.2時,這個人殺了我一會兒。還有一個從Python 2.6到2.4的反向移植讓我感到非常沮喪,因爲一些庫依賴於「foo if bar else baz」語法。我最終不得不從頭開始在一臺虛擬主機上安裝python以獲得2.6。:-P – eruciform 2010-07-14 18:33:50

+0

我已經嘗試了兩種配置方法--djangobb最初在settings.py中使用了前一種風格(我假設這是以前的1.1版數據庫配置方法),但它又失敗了。更新了 – 2010-07-14 18:33:53

相關問題