Django - ¿como duplicar el conenido de un campo en un modelo?

 
Vista:
sin imagen de perfil
Val: 10
Ha mantenido su posición en Django (en relación al último mes)
Gráfica de Django

¿como duplicar el conenido de un campo en un modelo?

Publicado por Max (7 intervenciones) el 06/02/2019 16:30:40
amigos como harían esto:

1
2
3
4
5
6
7
class Mitabla(models.Model):
 
	id_tabla = models.AutoField(primary_key=True, editable=True)
	uno_tabla = models.ForeignKey(Otratabla1, null=False, blank=False, on_delete=models.CASCADE)
	dos_tabla =  models.ForeignKey(Otratabla2, null=False, blank=False,on_delete=models.CASCADE,limit_choices_to = { 'tipo_partida' : 2 })
	tres_tabla = models.CharField(max_length=25,blank=True,default="xxx")
	obs_avance = models.TextField()


¿como creo la funcion o el metodo que me llene el campo "tres_tabla" con el contenido del campo "uno_tabla" aqui mismo en el modelo?

puse un default="xxx" para señalar , si es posible que el campo se rellene con el valor de otro campo, en el caso de las "xxx" como string en efecto inicializaŕa el campo con ese valor, pero como lo lleno con el valor de otro campo de la misma tabla??

gracias, espero pistas!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 10
Ha mantenido su posición en Django (en relación al último mes)
Gráfica de Django

¿como duplicar el conenido de un campo en un modelo?

Publicado por Max (7 intervenciones) el 08/02/2019 17:31:09
Agradezco a José Rosende y Carlos Rocha, por interesarse y darme una mano con el problema, aunque vienen de otra fuente;sin embargo, insto a los programadores o los que estamos aprendiendo a responder en estos foros, ya que si no hay respuesta el foro morirá y no tendremos a donde consultar nuestras dudas de primera mano .

La solución:

En efecto la soución iba en esa dirección y logré hacer que el contenido de un campo de mi modelo se replicara en otro campo de mi mismo modelo. Ahora algunos se preguntaran porque hacerlo? En mi caso necesitaba tener el valor de una parte del campo original, con la idea de despues hacer algunas busquedas y relaciones. Por eso dejo a continuación la solución!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Mitabla(models.Model):
 
    id_tabla = models.AutoField(primary_key=True, editable=True)
    uno_tabla = models.ForeignKey(Otratabla1, null=False, blank=False, on_delete=models.CASCADE)
    dos_tabla = models.ForeignKey(Otratabla2, null=False, blank=False,on_delete=models.CASCADE,limit_choices_to = { 'tipo_partida' : 2 })
    tres_tabla = models.CharField(max_length=25,blank=True,default="xxx")
    cuatro_tabla = models.TextField()
 
    @receiver(post_save, sender=Avance)
    def handler_that_saves_a_mymodel_instance(sender, instance, **kwargs):
    # without this check the save() below causes infinite post_save signals
        if not getattr(instance, 'processed', False):
            parte1 = str(instance.uno_tabla)
            raya = parte1.find("-")
            raya2 = int(raya)
            startLoc = 0
            endLoc = raya2
            varaiable =str(instance.uno_tabla)[startLoc: endLoc]
            instance.dos_tabla = variable
            instance.processed = True
            instance.save()


Esta funcion hace el trabajo de duplicar el contenido del campo en otro campo del mismo modelo y además usando unas instrucciones basicas de manipulación de cadenas prepara una variable que será la que finalmente será el valor del campo que recibe..


gracias amigo, damos esto como resuelto !!! a no ser de que alguien presente una solución mas optima (sería bueno para avanzar y aprender))


saludos!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar