Python 如何确保过去没有创建过某些自定义ID?

Python 如何确保过去没有创建过某些自定义ID?,python,django,Python,Django,我有一个带有一些charField的模型,叫做custom\u id 我随机生成这个ID,并在分配它之前检查数据库中是否已经存在 因此,我所有的自定义id都是唯一的 但是,如果我从数据库中删除一些条目。自定义_id将再次可用。我想防止这种情况发生。我希望自定义\u id不再可用 这怎么可能?有没有一种干净的方法可以实现这一点?您可以在try-catch块中编写代码。 由于custom_id字段是唯一的,因此在插入数据库时,如果custom id已经存在,它将抛出完整性错误。 您可以在catch

我有一个带有一些
charField
的模型,叫做
custom\u id

我随机生成这个ID,并在分配它之前检查数据库中是否已经存在

因此,我所有的
自定义id
都是唯一的

但是,如果我从数据库中删除一些条目。
自定义_id
将再次可用。我想防止这种情况发生。我希望
自定义\u id
不再可用


这怎么可能?有没有一种干净的方法可以实现这一点?

您可以在try-catch块中编写代码。 由于custom_id字段是唯一的,因此在插入数据库时,如果custom id已经存在,它将抛出完整性错误。
您可以在catch block自定义标识已经存在的情况下执行任何操作。

如何生成您的标识?如果有足够大的ID池,那么实际生成两个相同ID的概率可能非常小,因此不必考虑这一点,您可能可以尝试UUID。UUID被复制的可能性~1/2^128不,我的ID非常小:它们在某些点上有相同的可能性。出于规范原因,我无法使用UUID。您无法从数据库中删除,但添加了一列,如
is\u delete
,以假删除它。这可能是一个解决方案,但需要我更改查询所有对象的方式,并始终通过
is\u delete=False
+过滤它们,这样我的数据库就不会停止增长。。。我想知道如果从DB中删除了
custom\u id
,try块会成功吗?但是,我希望确保ID是唯一的,包括已删除的ID。