我在 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"}
中创建了文档。
关于可能发生什么的任何想法?这可能和这里发生的一样
注意:我尝试使用 EmbeddedDocumentField,但结果是相同的(错误采用我的 Embedded 类名而不是 'dict')