【发布时间】:2011-03-18 17:56:13
【问题描述】:
我正在使用一个 API,它希望我为其 API 的交易生成不透明的“参考 ID”,换句话说,用户无法以任何方式猜测或推断的唯一参考。 (“推断”是正确的英语吗?)
这是我目前一起破解的:
randomRef = randint(0, 99999999999999)
while Transaction.objects.filter(transactionRef = randomRef).count():
randomRef = randint(0, 99999999999999)
Transaction.objects.create(user=user, transactionRef=randomRef, price=999)
不幸的是,我的数据库目前似乎缺少交易。我已经意识到我的方法不是特别线程安全(比如说我在多个 mod_wsgi apache 线程上运行相同的 django 代码,它们都可能生成相同的 randomRef!)
有没有人有更好的技巧来为我生成随机主键?
【问题讨论】:
标签: python django random primary-key