小编Fel*_*ipe的帖子

在mongodb usyng python中使用自定义ID类型

我使用mongodb作为Django 1.5应用程序中的一些信息的存储后端.

存储在mongodb集合中的每个文档都有一个_id字段,这是一个由几个字符串组成的字典.现在,当我尝试检索此信息时,我使用mongoengine将文档映射到模型类:

from mongoengine import *

class MyClass(Document):
    _id = DictField()
Run Code Online (Sandbox Code Playgroud)

在我看来:

documents = MyClass.objects
print documents
Run Code Online (Sandbox Code Playgroud)

当我打电话给视图时,我得到了一个 TypeError

TypeError at /viewname/
id must be an instance of (str, unicode, ObjectId), not <type 'dict'>
Run Code Online (Sandbox Code Playgroud)

更糟糕的是,当我使用save rutine时

obj = MyClass({"tag":"sometag"})
obj.save()
Run Code Online (Sandbox Code Playgroud)

我得到exat相同的错误,但在db集合_id={"tag":"sometag"}中创建了文档.

什么可能发生的想法?它可能与此处发生的情况相同

注意:我尝试使用EmbeddedDocumentField,但结果是一样的(错误采用我的嵌入式类名而不是'dict')

python mongodb mongoengine

2
推荐指数
1
解决办法
1894
查看次数

标签 统计

mongodb ×1

mongoengine ×1

python ×1