我正在努力将应用程序从Django / MySQL改造为flask / mongo-engine&我在使用id
字段创建模型时遇到问题。这是一个示例模型:
class Location(db.Document):
id = db.IntField(unique=True)
name = db.StringField(max_length=200, required=True)
# other fields in the document ...
为了向后兼容,我要求名为as的字段id
。这曾经在MySQL中正常工作,但是mongo-engine为上述模型的文档提供了ValidationError - Field is required: ['id'] Invalid Object ID: ['auto_id_0']
。
我也尝试使用
中的db_field
参数
id = db.IntField(db_field='l_id', unique=True)
......但无济于事。
请注意,我无意覆盖mongodb的默认ObjectID
字段。除了在反序列化时重命名字段外,还有其他解决方法吗?
答案 0 :(得分:1)
尝试
class Location(db.Document):
myid = db.IntField(db_field='id', unique=True)
name = db.StringField(max_length=200, required=True)
# other fields in the document ...
并使用它进行操作,就好像该字段名为myid一样。
Location.objects.create(myid=real_id)
Location.objects.filter(myid=real_id)