【发布时间】:2013-06-21 03:03:28
【问题描述】:
我在 Django 1.5 应用程序中使用 mongodb 作为我的一些信息的存储后端。
存储在 mongodb 集合中的每个文档都有一个 _id 字段,它是一个由多个字符串组成的字典。 现在,当我尝试检索此信息时,我使用 mongoengine 将文档映射到模型类:
from mongoengine import *
class MyClass(Document):
_id = DictField()
在我做的视图中:
documents = MyClass.objects
print documents
当我调用视图时,我得到一个TypeError
TypeError at /viewname/
id must be an instance of (str, unicode, ObjectId), not <type 'dict'>
更糟糕的是,当我使用保存规则时
obj = MyClass({"tag":"sometag"})
obj.save()
我得到了同样的错误,但是在 db 集合中创建了带有 _id={"tag":"sometag"} 的文档。
对可能发生的事情有任何想法吗? here
注意:我尝试使用 EmbeddedDocumentField,但结果相同(错误采用我的 Embedded 类名而不是“dict”)
【问题讨论】:
标签: python mongodb mongoengine