该对象的django没有属性'is_hidden'

时间:2019-04-07 23:47:29

标签: python django forms web attributes

我正在使用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),  
    }

有人可以帮助我吗?谢谢!。

1 个答案:

答案 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}