es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Formulario Django – Cómo rellenar automáticamente un campo desde otro campo

Me gustaría rellenar automáticamente mi campo Kpi extrayendo su valor en el campo name. Por ejemplo: aquí kpi = name.split("-")[6] que es igual a la cadena CPC. ¿Cómo puedo hacerlo, por favor?

enter image description here

class UserCampaigns(models.Model):
    dsp_choices =(
        ('Amazon', 'Amazon'),
        ('Amobee', 'Amobee'),
        ('AppNexus', 'AppNexus'),
        ('Digiteka', 'Digiteka'),
        ('DV 360', 'DV 360'),
    )
    kpi_choices = (
        ('CPA', 'CPA'), ('CPC', 'CPC'),
        ('CPD', 'CPD&##39;), ('CPL', 'CPL'),
        ('CPM', 'CPM&##39;), ('CPV', 'CPV&##39;),
        ('CTR', 'CTR&##39;), ('Visibilidad', 'Visibilidad'),
        ('VTR', 'VTR&##39;), ('LTR', 'LTR'),
    )
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    name = models.ForeignKey(CampaignNamingTool, on_delete=models.CASCADE)
    dsp = models.CharField(max_length=30, choices=dsp_choices)
    budget = models.DecimalField(max_digits=20, decimal_places=2)
    kpi = models.CharField(max_length=10) #choices=kpi_choices)
    start_date = models.DateField()
    end_date = models.DateField()
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Puede sobre escribir el método save del modelo UserCampaigns para lograr esto. Aquí está un ejemplo de implementación:

    class UserCampaigns(models.Model):
        # ... definición de campos ...
    
        def save(self, *args, **kwargs):
            # Autorellenar el campo kpi con el séptimo elemento del campo name separado por "-"
            self.kpi = self.name.split("-")[6]
            super(UserCampaigns, self).save(*args, **kwargs)
    

    Esta implementación asume que el campo name es una cadena separada por caracteres “-” y que el séptimo elemento es el valor KPI. Puede que necesite ajustarlo según su caso de uso específico.

    Tenga en cuenta que debe eliminar el campo kpi de los parámetros choices ya que lo está llenando programáticamente.

Comments are closed.