2012-12-10 42 views
2

我正在试图查看管理页面时,这个错误:的Django MongoDB的SITE_ID错误

InvalidId at /admin/ 

AutoField (default primary key) values must be strings representing an ObjectId on MongoDB (got u'1' instead). Please make sure your SITE_ID contains a valid ObjectId string. 

Request Method:  GET 
Request URL: http://127.0.0.1:8000/admin/ 
Django Version:  1.3 
Exception Type:  InvalidId 
Exception Value:  

AutoField (default primary key) values must be strings representing an ObjectId on MongoDB (got u'1' instead). Please make sure your SITE_ID contains a valid ObjectId string. 
... 

所以我用Google搜索周围,计算过,我需要做下面的

./manage.py tellsiteid 
The default site's ID is u'50c5766e62f11f41f0332e65'. To use the sites framework, add this line to settings.py: 
SITE_ID=u'50c5766e62f11f41f0332e65' 

所以我添加它给我settings.py

DEBUG = True 
TEMPLATE_DEBUG = DEBUG 
SITE_ID = u'50c5766e62f11f41f0332e65' 
... 

我仍然得到相同的错误消息。我应该运行一个syncdb还是重新启动服务器?因为我已经完成了这两项工作,并且仍然遇到同样的错误。

编辑

我试着在Python外壳观看的SITE_ID价值,果然...

$ python manage.py shell 
Python 2.7.3 (default, Aug 1 2012, 05:14:39) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
(InteractiveConsole) 
>>> from concepts.settings import * 
>>> SITE_ID 
1 

git diff清楚地表明,我已经改变了设置文件,对?

$ git diff 
diff --git a/settings.py b/settings.py 
index 586ea3a..bb069ed 100644 
--- a/settings.py 
+++ b/settings.py 
@@ -2,6 +2,7 @@ 

DEBUG = True 
TEMPLATE_DEBUG = DEBUG 
+SITE_ID = u'50c5766e62f11f41f0332e65' 

ADMINS = (
    # ('Your Name', '[email protected]'), 
... 

我在做什么错在这里?

回答

5

Ohhhh傻我。这些代码行settings.py后来又出现了:

# Language code for this installation. All choices can be found here: 
# http://www.i18nguy.com/unicode/language-identifiers.html 
LANGUAGE_CODE = 'en-us' 

SITE_ID = 1 

# If you set this to False, Django will make some optimizations so as not 
# to load the internationalization machinery. 
USE_I18N = True 
... 

所以我只是改变了1那里u'50c5766e62f11f41f0332e65'和现在的作品!

0

我有同样的问题,但即使我改变了我的settings.py SITE_ID问题仍然存在。我评论了INSTALLED_APPS和syncdb中的'django.contrib.sites'这一行,然后正确地完成了(网站应用程序在我看来应该是几乎没有人需要的应用程序......所以快速而干净的解决方案:))