我使用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')