I have an UpdateView which updates every field correctly except those fields that are filled via "datalist" html5, like "cliente", "fecha" and "isin".
The question is, how can I fill that information like the others fields?. What am I doing wrong? Could you give me some guide about that?
views.py
class ordenes_updatea_orden(UpdateView):
model = rfi_tsox
form_class = IngresoOrdenesRFIModelForm
template_name = template_name = 'ordenes/rfi-ingreso-ordenes-modelform.html'
success_url = reverse_lazy('listado_ordenes')
Modelform
class IngresoOrdenesRFIModelForm(ModelForm):
def __init__(self,*args, **kwargs):
super(IngresoOrdenesRFIModelForm,self).__init__(*args, **kwargs)
self.fields['fecha_ingreso'].widget.attrs = {'class':'form-control','type':'date'}
self.fields['orden_tipo'].widget.attrs = {'class':'form-control'}
self.fields['nominales'].widget.attrs = {'class':'form-control'}
self.fields['precio'].widget.attrs = {'class':'form-control'}
self.fields['papel'].widget.attrs = {'class':'form-control'}
self.fields['rating'].widget.attrs = {'class':'form-control'}
self.fields['duracion'].widget.attrs = {'class':'form-control'}
self.fields['payment_rank'].widget.attrs = {'class':'form-control'}
self.fields['ytm'].widget.attrs = {'class':'form-control'}
self.fields['sector'].widget.attrs = {'class':'form-control'}
self.fields['notas'].widget.attrs = {'class':'form-control'}
self.fields['pais'].widget.attrs = {'class':'form-control'}
self.fields['sector'].widget.attrs = {'class':'form-control'}
self.fields['cliente'].widget.attrs = {'class':'form-control'}
cliente = forms.ChoiceField(choices = [(x.fondo,x.fondo) for x in clientes_rfi.objects.all()])
fecha_ingreso = forms.DateField(widget=forms.DateInput(attrs={'class':'form-control','type':'date'}),initial = datetime.date.today)
orden_tipo = forms.ChoiceField(choices = [('cliente compra','cliente compra'),('cliente vende','cliente vende')])
isin = forms.ChoiceField(choices=listado_isin(),required=False)
papel = forms.CharField(required=False)
rating = forms.MultipleChoiceField(choices = [('Todos','Todos'),('IG','IG'),('HY','HY')],initial='Todos',required=False)
duracion = forms.MultipleChoiceField(choices=[('Toda la curva','Toda la curva'),('x<=3','x<=3'),('3<x<=5','3<x<=5'),('x>5','x>5')],initial='Toda la curva',required=False)
nominales = forms.CharField(required=False)
sector = forms.MultipleChoiceField(choices=lista_sector(),initial='Todos',required=False)
precio = forms.CharField(required=False)
payment_rank = forms.MultipleChoiceField(choices=lista_paymentRank(),initial='Todos',required=False)
ytm = forms.MultipleChoiceField(choices=[('Todos','Todos'),('0 a 100','0 a 100'),('101 a 200','101 a 200'),('201 a 300','201 a 300'),('301 a 400','301 a 400'),('sobre 400','sobre 400')],initial='Todos',required=False)
notas = forms.CharField(required=False)
pais = forms.MultipleChoiceField(choices = listado_cntry(),initial='Todos',required=False)
class Meta:
model = rfi_tsox
fields = '__all__'
fields = ('cliente','fecha_ingreso','orden_tipo','nominales','precio','papel','rating','duracion','payment_rank','ytm',
'sector','notas','pais','sector')
def clean_nominales(self):
nominales = self.cleaned_data['nominales']
nominales = nominales.replace('.','').replace(',','.')
return nominales
models.py
class rfi_tsox(models.Model):
fecha_ingreso = models.DateField()
trader = models.TextField(null=True,blank=True)
orden_tipo = models.TextField(null=True,blank=True)
isin = models.TextField(null=True,blank=True)
papel = models.TextField(null=True,blank=True)
cliente = models.TextField(null=True,blank=True)
rating = ArrayField(models.CharField(max_length=100),null=True,blank=True)
pais = ArrayField(models.CharField(max_length=100),null=True,blank=True)
duracion = ArrayField(models.CharField(max_length=100),null=True,blank=True)
nominales = models.BigIntegerField(null=True,blank=True)
sector = ArrayField(models.CharField(max_length=100),null=True,blank=True)
precio = models.DecimalField(max_digits=6,decimal_places=3,null=True,blank=True)
payment_rank = ArrayField(models.CharField(max_length=100),null=True,blank=True)
ytm = ArrayField(models.CharField(max_length=100),null=True,blank=True)
notas = models.TextField(null=True,blank=True)
status = models.TextField(null=True,blank=True)

Have you tried passing it via context and accessing it with ORM operatives
views.py
HTML