1

我有一个如下的数据库模型:

class Image(mongoengine.Document):

    project = mongoengine.ReferenceField('Project', required=True, 
                                 reverse_delete_rule=mongoengine.CASCADE)
    next = mongoengine.ReferenceField('self', required=False)
    prev = mongoengine.ReferenceField('self', required=False)

    name = mongoengine.StringField(unique_with='project', required=True)
    created_on = mongoengine.DateTimeField(default=datetime.utcnow())

有两个字段引用同一模型。

只是为了测试有效性,我删除了其中一个,然后尝试保存 Image 对象,它起作用了,但是当 next 和 prev 都在 dbmodel 中时,在这种情况下,在保存图像对象时出现错误:

ValidationError: None is not a valid ObjectId.

如何解决这个问题?mongoengine 不支持有两个自引用 dbfields 吗?

任何帮助将非常感激。

4

1 回答 1

0

得到错误。

下一个

是一个内置函数,不应保留为 dbfield。

用任何其他不是内置属性的变量替换它都可以。

于 2013-06-05T06:33:00.300 回答