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?
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()
davy.ai
Puede sobre escribir el método
save
del modeloUserCampaigns
para lograr esto. Aquí está un ejemplo de implementación: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ámetroschoices
ya que lo está llenando programáticamente.