Generar un Token

django.utils.crypto.get_random_string

from django.utils.crypto import get_random_string

token = get_random_string(length=30)

Argumentos por defecto:

  • length=12

  • allowed_chars='abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'

Otra opción

import hashlib
import random


def generate_token(length=12):
"""Genera un token único de 30 caracteres como máximo."""
chars = list(
    'ABCDEFGHIJKLMNOPQRSTUVWYZabcdefghijklmnopqrstuvwyz01234567890'
)
random.shuffle(chars)
chars = ''.join(chars)
sha1 = hashlib.sha1(chars.encode('utf8'))
token = sha1.hexdigest()
return token[:length]

Otra opción

import uuid


def generate_token():
"""Genera un token unico de 32 caracteres."""
return str(uuid.uuid4()).replace('-', '')