django - UpdateView 不填充数据列表 html 输入和其他字段
问题描述
我有一个 UpdateView,它可以正确更新每个字段,除了那些通过“datalist”html5 填充的字段,如“cliente”、“fecha”和“isin”。
问题是,我怎样才能像其他字段一样填写这些信息?我究竟做错了什么?你能给我一些指导吗?
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
模型.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)
解决方案
您是否尝试过通过上下文传递它并使用 ORM 操作员访问它
视图.py
def someFunc(request, Argument):
...
some logic
...
InfoDelCliente=rfi_tsox.objects.get(id = Argument)
context={
'ElCliente':InfoDelCliente
}
return render(request, 'some.html', context)
HTML
<form action="" method="POST" class="">
{%csrf_token%}
<div class="mb-3">
<label for="Cliente" class="">Cliente</label>
<input type="text" class="" id="formGroupExampleInput" value="{{ElClinte.cliente}}" name="title">
</div>
推荐阅读
- scala - 在 Databricks 笔记本中为 spark.sql 创建一个函数
- nfsclient - 如何使用 libnfs-python 为上下文完整句柄创建 NFS 上下文
- javascript - 如果选中其中一个单选按钮,如何更改两段中的文本?JS
- java - 从 Java AWS lambda API 响应中的字节数组返回图像
- c - 我不小心在命令中写了错误的文件名并且文件已删除
- r - ggplot 只有黑点,没有颜色
- ios - 了解钥匙串项目的访问控制设置`.userPresence`
- php - php goutte web scraper 不时给出不同的结果
- react-native - 合并两个 useState 值的最简单方法
- amazon-web-services - 除了来自 AWS SQS 的新消息外,我可以接收所有消息吗?