Python Mongodb引擎和Django创建自定义ObjectId

Python Mongodb引擎和Django创建自定义ObjectId,python,django,mongodb,Python,Django,Mongodb,是否可以在django模型中创建自定义ObjectId,并使用mongodb引擎将其保存到mongodb?例如,我尝试将我想要的字符串传递到ObjectId类型Flight(_id=ObjectId(myid))中,但这会给我一个错误,说明该字符串不是有效的id。是否可以用自定义id覆盖该id?有没有什么地方可以让我读到这方面的内容,或者创建ID的规则是什么 例如: 文件“/usr/local/lib/python2.7/dist-packages/bson/objectid.py”,第172行

是否可以在django模型中创建自定义ObjectId,并使用mongodb引擎将其保存到mongodb?例如,我尝试将我想要的字符串传递到ObjectId类型Flight(_id=ObjectId(myid))中,但这会给我一个错误,说明该字符串不是有效的id。是否可以用自定义id覆盖该id?有没有什么地方可以让我读到这方面的内容,或者创建ID的规则是什么

例如:

文件“/usr/local/lib/python2.7/dist-packages/bson/objectid.py”,第172行,在 raise INVALIID(“%s”不是有效的ObjectId“%oid”) InvalidId:short_profile_4FCAD5E8E50955F5A4F000000不是有效的ObjectId


当然,您可以自定义objectId,检查objectId,但我不知道您需要什么

您可以使用所需的任何类型,而不是ObjectId。因此,您可以生成_id字符串并插入任何strting值,而不是mongo ObjectId。但是您的自定义id对于集合的每个成员都必须是唯一的。如果集合在_id上有索引,则强制执行此操作,默认情况下是这样

从文件

尽管_id值可以是任何 类型,则需要一个特殊的BSON数据类型 为对象ID提供。这种类型是 一个12字节的二进制值,用于 有相当高的可能性 在分配时是唯一的。全部 官方支持的MongoDB 默认情况下,驱动程序将此类型用于 _id值。此外,Mongo数据库本身在分配时也使用这种类型 _不存在_id值的插入上的id值


当然,您可以自定义objectId,检查objectId,但我不知道您需要什么

您可以使用所需的任何类型,而不是ObjectId。因此,您可以生成_id字符串并插入任何strting值,而不是mongo ObjectId。但是您的自定义id对于集合的每个成员都必须是唯一的。如果集合在_id上有索引,则强制执行此操作,默认情况下是这样

从文件

尽管_id值可以是任何 类型,则需要一个特殊的BSON数据类型 为对象ID提供。这种类型是 一个12字节的二进制值,用于 有相当高的可能性 在分配时是唯一的。全部 官方支持的MongoDB 默认情况下,驱动程序将此类型用于 _id值。此外,Mongo数据库本身在分配时也使用这种类型 _不存在_id值的插入上的id值


请告诉我确切的错误是什么?请告诉我确切的错误是什么?所以我实际想要的是设置一个字符串作为我的_id,但我一直得到这个错误:AutoField(默认主键)值必须是表示MongoDB上ObjectId的字符串(改为got u'ryanair-DU…)知道可能有什么错误吗?我的模型有_id=models.CharField(db_index=True),所以我实际想要的是设置一个字符串作为我的_id,但我一直遇到这个错误:AutoField(默认主键)值必须是表示MongoDB上ObjectId的字符串(改为got u'ryanair-DU…)有什么想法吗?我的模型有_id=models.CharField(db_index=True)