我正在使用Django构建表单,并且出现此错误:
'CharField'对象没有属性'is_hidden'
但是charField实际上具有属性,如您所见:
class ArticleForm(forms.ModelForm):
class Meta:
model = Articulo
fields = [
'nombre_producto',
'id_clasificacion_fk',
'Descripcion',
'long_descripcion',
'precio',
'cantidad',
]
labels = {
'nombre_producto': 'Nombre del producto',
'id_clasificacion_fk': 'Clasificación del producto',
'Descripcion': 'Corta descipción',
'long_descripcion': 'Larga descipción',
'precio': 'Precio del producto',
'cantidad': 'Cantidad en inventario',
}
widgets = {
'nombre_producto': forms.TextInput(attrs={'class':'form-control'}),
'id_clasificacion_fk': forms.Select(attrs={'class':'form-control'}),
'Descripcion': forms.TextInput(attrs={'class':'form-control'}),
'long_descripcion': forms.TextInput(attrs={'class':'form-control'}),
'precio': forms.CharField(widget=forms.NumberInput),
'cantidad': forms.CharField(widget=forms.NumberInput),
}
有人可以帮助我吗?谢谢!。
答案 0 :(得分:2)
在widgets
词典中,您将这两个字段设置为FormField
子类型,而不是Widget
子类型:
'precio': forms.CharField(widget=forms.NumberInput),
'cantidad': forms.CharField(widget=forms.NumberInput),
那是不对的-CharField
不是小部件。如果要将NumberInput
小部件用于这些字段,请按以下步骤进行设置:
'precio': forms.NumberInput
如果您想更改这些模型字段的默认表单字段类型(我最好的猜测是您要使用现有值做什么),请使用field_classes
字典或自己定义字段。像这样的东西(其他字段省略):
field_classes = {'precio': forms.CharField}
widgets = {'precio': forms.NumberInput}