同一db模型中的两个自引用字段mongoengine

时间:2013-06-05 06:26:19

标签: python models mongoengine

我有以下数据库模型:

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吗?

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

得到了错误。

  

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

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