python - 在 Django-NoRel 中保存嵌套模型会出现 "can' t 编码“错误

标签 python django mongodb pymongo django-nonrel

我可以保存“节点”、“链接”,但不能保存“图形”(请参见下面的错误)。 使用 pymongo 2.1.1、Django-NoRel、Python 2.7:

from django.db import models
from djangotoolbox.fields import SetField, ListField, EmbeddedModelField

class Graph(models.Model):
    links = ListField(EmbeddedModelField('Link'))

class Link(models.Model):
    parent = EmbeddedModelField('Node')
    child = EmbeddedModelField('Node')

class Node(models.Model):
    extent = SetField() # set of strings e.g. "Gene-Bmp4"
    intent = SetField() # set of strings

--

n1 = Node(extent=set(["Gene-bmp4"]),intent=set(["Attr1", "Attr2"]))
n2 = Node(extent=set(["Gene-fp4"]),intent=set(["Attr3", "Attr4"]))
link = Link(parent=n1, child=n2)
links = [link]
g = Graph(links=links)
g.save()

产生错误:

/Library/Python/2.7/site-packages/pymongo-2.1.1-py2.7-macosx-10.7-intel.egg/pymongo/collection.py:312:RuntimeWarning:无法编码 - 重新加载 python 模块并再次尝试。如果您看到此内容但没有收到 InvalidDocument 异常,请参阅 api.mongodb.org/python/current/faq.html#does-pymongo-work-with-mod-wsgi

Exception Type:     InvalidDocument
Exception Value:    Cannot encode object: set(['Attr2', 'Attr1'])
Exception Location:     /Library/Python/2.7/site-packages/pymongo-2.1.1-py2.7-macosx-10.7-intel.egg/pymongo/collection.py in insert, line 312

有人知道我应该做什么吗?

最佳答案

对我来说看起来像是一个错误。请调用https://github.com/django-nonrel/djangotoolbox开票

关于python - 在 Django-NoRel 中保存嵌套模型会出现 "can' t 编码“错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10143614/

相关文章:

python - 如何使用多重处理更快地迭代列表数据?

python - Pandas CSV 到 Django 响应

mysql - 为 MongoDB 设计数据模型

r - 如何将数据从 mongodb 流式传输到 R?

python - 使用 Python 套接字和线程模块的服务器循环

python - Pandas Panel 作为 numpy 多维数组

django 1.7 和连接池到 PostgreSQL?

django - Docker-compose with django 无法将主机名 "db"转换为地址 : Name or service not known

python - 在 Django 中删除对象后将数据保存在变量中

mongodb - 查找具有最接近整数值的文档