Motorengine(Mongo + Python):如何在另一个模型中引用模型?

时间:2015-07-10 18:52:05

标签: python mongodb tornado-motor

我有两个班级:

项目:

class Projects(Document):
    name = StringField(required=True)
    description = StringField()
    created_by = ReferenceField(Users)

用户:

class Users(Document):
    username = StringField(required=True)
    password = StringField(required=True)

我想在Projects模型中引用属性created_by的User模型。但是我得到了这个错误:

  

InvalidDocumentError(" Field'%s'必须有效。"%name)

     

InvalidDocumentError:Field' created_by'必须有效。

这里有什么问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果引用ObjectId无效,Motorengine将引发InvalidDocumentError,因此您必须在保存项目之前保存用户文档

user = Users(username='user', password='pass')
user.save()

project = Projects(name='project', description='desc', created_by=user)
project.save()