gpt4 book ai didi

django - 使用 mongoengine 和 django 查询

转载 作者:行者123 更新时间:2023-12-04 23:48:11 24 4
gpt4 key购买 nike

我有一个数据库“tumblelog”(使用 mongoengine),我在其中使用“用户”模型在“用户”集合中添加了一些数据:

db.user.find()

...
{ "_id" : ObjectId("4fb0c9494ca88402dd000000"), "_types" : [ "User" ], "first_name" : "John", "last_name" : "Doe", "_cls" : "User", "email" : "jdoe@example.com" }
{ "_id" : ObjectId("4fb0cb9d4ca88402ec000000"), "_types" : [ "User" ], "first_name" : "Joe30", "last_name" : "Foe", "_cls" : "User", "email" : "hu@huu.com" }

当我在 django shell 中尝试 User.objects 时,出现以下错误:

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')

在设置.py然后我创建了这个简单的模型

from mongoengine import *

class User(Document):
email = StringField(required=True)
name = StringField(max_length=50)

然后我运行服务器

> python manage.py runserver

并且在 shell(python manage.py shell)中,如果我导入我的模型类但我无法读取它,我可以保存数据,我总是有相同的 TypeError: init() 关键字必须是字符串!

-----切换到django-mongodb引擎-----

我没有找到任何解决方案,所以我将使用 django-mongodb-engine。我没有找到任何比较,但我都试过了,它非常相似。我只是很遗憾 django-mongodb-engine 没有处理继承原则。

我做错了什么?提前致谢!

最佳答案

我们在使用 mongoengine 0.6.9 时遇到了完全相同的问题。我并不是说这是一个理想的解决方案,但降级到 0.6.5 可以为我们解决这个问题。

关于django - 使用 mongoengine 和 django 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10582425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com