2015-11-26 117 views
2

在Mongoengine我试图通过位于不同的数据库中的文档的ReferenceField设置文件的ID字段。设置文档ID通过ReferenceField在mongoengine

class User(Document): 
    name = StringField() 
    meta = {"db_alias": "user_db"} 

class Credential(Document): 
    id = ReferenceField(User) 
    password = StringField() 
    meta = {"db_alias": "credentials_db"} 

我可以做的东西一样u = User('someuser').save(),与 Credential(u, 'somepassword').save()变成问题

ValidationError (Credential:None) (Invalid Object ID: ['auto_id_0'] Field is required: ['id']) 

当然MongoDB中只存储一些的ObjectID,因此,我不明白为什么这不应该是可能的,但MongoEngine是否支持类似的东西?

回答

1

Document Ids必须是唯一的,因此您需要为id字段设置primary_keyTrue

class Credential(Document): 
    id = ReferenceField(User, primary_key=True) 
    ...