Estoy trabajando con una API que quiere que genere "ID de referencia" opacos para transacciones con su API, en otras palabras, referencias únicas que los usuarios no pueden adivinar o inferir en ningún camino. (Se 'deducir' Inglés adecuada?)Creando objetos django con una clave primaria aleatoria
Esto es lo que he hackeado la actualidad:
randomRef = randint(0, 99999999999999)
while Transaction.objects.filter(transactionRef = randomRef).count():
randomRef = randint(0, 99999999999999)
Transaction.objects.create(user=user, transactionRef=randomRef, price=999)
por desgracia mi base de datos parece que falta transacciones en el momento. Me he dado cuenta de que mi método no es especialmente seguro (digo que estoy ejecutando el mismo código django en varios hilos apache mod_wsgi, todos podrían estar generando el mismo randomRef!)
¿Alguien ha conseguido un truco más agradable para generar claves primarias al azar para mí?
Sí, "infer" is fine. – derekerdmann