Foros del Web » Programando para Internet » Python »

Como crear un string automático de 5 caracteres

Estas en el tema de Como crear un string automático de 5 caracteres en el foro de Python en Foros del Web. Como están? me gustaría definir en un modelo un campo que al guardar un nuevo registro me genere una clave automática de 5 caracteres cualquiera ...
  #1 (permalink)  
Antiguo 03/11/2014, 19:11
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 16 años, 2 meses
Puntos: 0
Como crear un string automático de 5 caracteres

Como están? me gustaría definir en un modelo un campo que al guardar un nuevo registro me genere una clave automática de 5 caracteres cualquiera letras y números mayusculas y minúsculas.

Es para generar una contraseña automática a algunas ordenes de trabajo para la cual no hay necesidad de encriptar.

Desde ya muchas gracias a quien pueda ayudarme
  #2 (permalink)  
Antiguo 04/11/2014, 02:54
Avatar de jhg
jhg
 
Fecha de Ingreso: marzo-2012
Mensajes: 96
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Como crear un string automático de 5 caracteres

Recibiendo la señal de antes de ser guardado, podrías en lugar de señales modificar el método save pero teniendo en cuenta que en algunas operaciones, como al trabajar con múltiples instancias, Django optimiza las consultas y no emplea el método save, tendrás que ver cual es tu caso y que se adapta mejor, de resto es solo antes de guardar si no tiene password asignada que se le genere aleatoriamente y se le asigne, y luego sea guardado:

Código:
from django.db import models
from django.db.models.signals import pre_save
from random import random

class MyModel(models.Model):
    passwd = models.CharField()

def mymodel_save_handler(sender, **kwargs):
    if sender.passwd == '':
        dic = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
        _passwd = ''
        for i in range(5):
            _passwd += dic[int(random()*len(dic))]
        sender.passwd = _passwd

pre_save.connect(mymodel_save_handler, sender=MyModel)
__________________
JHG

Última edición por jhg; 04/11/2014 a las 02:55 Razón: Corregido error en el código
  #3 (permalink)  
Antiguo 07/11/2014, 06:59
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Como crear un string automático de 5 caracteres

Otra forma de generar una cadena de caracteres al azar:

Código Python:
Ver original
  1. import random
  2. import string
  3.  
  4. print ''.join(random.choice(string.ascii_letters + string.digits + ' ') for j in range(5))

Etiquetas: django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:47.