Django - ID não linear não previsível curto na URL

Eu sei que existem perguntas semelhantes (comoesta, esta, esta eesta), mas tenho requisitos específicos e estou procurando uma maneira mais barata de fazer o seguinte (no Django 1.10.2):

Olhando paranão têm IDs inteiros sequenciais / possíveis de adivinhar nos URLs e atendem idealmente aos seguintes requisitos:

Evite UUIDs, pois isso torna o URL muito longo.Evite uma chave primária personalizada. Parece que não funciona bem se os modelos têm ManyToManyFields. Foi afetado por pelo menos três erros ao tentar isso (# 25012, # 24030 e# 22997), incluindo atrapalhar as migrações e ter que excluir o banco de dados inteiro e recriar as migrações (bem, muito aprendizado também)Evite verificar colisões, se possível (evite uma pesquisa de banco de dados para cada inserção)Não basta procurar pela lesma, pois tem menos desempenho do que apenas procurar um ID inteiro.Não se importe muito em criptografar o ID - apenas não queira que ele seja um número inteiro visivelmente sequencial.

Nota: o aplicativo provavelmente terá cerca de 5 milhões de registros a longo prazo.

questionAnswers(1)

yourAnswerToTheQuestion