尝试查看管理页面时出现此错误:
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.
...
所以我四处搜索并认为我需要执行以下操作
./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
或重新启动服务器吗?因为我两者都做了,但仍然遇到同样的错误。
编辑
我试过SITE_ID
在 Python shell 中查看 的值,果然……
$ 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', 'your_email@example.com'),
...
我在这里做错了什么?