我有一个数据库“的tumblelog”(使用mongoengine),其中我添加了一些数据中的“用户”集合与“用户”模式:与mongoengine和django的查询
db.user.find()
...
{ "_id" : ObjectId("4fb0c9494ca88402dd000000"), "_types" : [ "User" ], "first_name" : "John", "last_name" : "Doe", "_cls" : "User", "email" : "[email protected]" }
{ "_id" : ObjectId("4fb0cb9d4ca88402ec000000"), "_types" : [ "User" ], "first_name" : "Joe30", "last_name" : "Foe", "_cls" : "User", "email" : "[email protected]" }
当我尝试User.objects
在Django的壳,我得到以下错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File ".../mongoengine/queryset.py", line 1127, in __getitem__
return self._document._from_son(self._cursor[key])
File ".../mongoengine/base.py", line 1018, in _from_son
obj = cls(**data)
TypeError: __init__() keywords must be strings
同样的事情,当我尝试
for user in User.objects:
print user.first_name
---- ----编辑
我想这
>>> users = User.objects
>>> users.count()
7
>>> users.first()
...
TypeError: __init__() keywords must be strings
----编辑2 ----
我安装我的项目是这样的:
> virtualenv Test
> source Test/bin/activate
> pip install Django
> pip install mongoengine
> cd Test/
> django-admin.py startproject db
然后,我添加线
from mongoengine import *
connect('tumblelog')
settings.py中 然后,我创建这个简单的模型
from mongoengine import *
class User(Document):
email = StringField(required=True)
name = StringField(max_length=50)
然后我运行服务器
> python manage.py runserver
而且在外壳(蟒蛇manage.py壳),如果我我可以保存数据导入我的模型类但我无法读取它,我总是有相同的TypeError:init()关键字必须是字符串!
-----切换到Django的MongoDB的引擎----
我没有找到任何解决方案,因此我将使用Django的MongoDB的引擎。我没有找到任何比较,但我尝试了两个,它非常相似。 我只是后悔django-mongodb引擎不处理继承原则。
我在做什么错? 在此先感谢!
它在循环或打印线上出现错误吗? – Ross
它在循环中出错 –
你能提供示例数据吗?数据字典中有什么? – Ross