该对象没有 django 的属性“is_hidden”

Lui*_*dez 2 python forms django attributes web

我正在使用 django 构建表单,但收到此错误:

\n\n

“CharField”对象没有属性“is_hidden”

\n\n

但 charField 实际上有属性,如您所见:

\n\n
class ArticleForm(forms.ModelForm):\n\nclass Meta:\n    model = Articulo\n\n    fields = [\n        'nombre_producto',\n        'id_clasificacion_fk',\n        'Descripcion',\n        'long_descripcion',\n        'precio',\n        'cantidad',\n        ]\n    labels = {\n        'nombre_producto': 'Nombre del producto',\n        'id_clasificacion_fk': 'Clasificaci\xc3\xb3n del producto',\n        'Descripcion': 'Corta descipci\xc3\xb3n',\n        'long_descripcion': 'Larga descipci\xc3\xb3n',\n        'precio': 'Precio del producto',\n        'cantidad': 'Cantidad en inventario',\n    }\n    widgets = {\n        'nombre_producto': forms.TextInput(attrs={'class':'form-control'}),\n        'id_clasificacion_fk': forms.Select(attrs={'class':'form-control'}),\n        'Descripcion': forms.TextInput(attrs={'class':'form-control'}),\n        'long_descripcion': forms.TextInput(attrs={'class':'form-control'}),\n        'precio': forms.CharField(widget=forms.NumberInput),\n        'cantidad': forms.CharField(widget=forms.NumberInput),  \n    }\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n

Pet*_*per 6

在您的widgets字典中,您将这两个字段设置为FormField子类型而不是Widget子类型:

    'precio': forms.CharField(widget=forms.NumberInput),
    'cantidad': forms.CharField(widget=forms.NumberInput),
Run Code Online (Sandbox Code Playgroud)

这是不对的——CharField它不是一个小部件。如果您想NumberInput对这些字段使用小部件,请按如下方式设置:

'precio': forms.NumberInput
Run Code Online (Sandbox Code Playgroud)

如果您想更改这些模型字段的默认表单字段类型(我对您尝试对现有值执行的操作的最佳猜测),请使用字典field_classes或自己定义字段。EG 类似这样(其他字段省略):

field_classes = {'precio': forms.CharField}
widgets = {'precio': forms.NumberInput}
Run Code Online (Sandbox Code Playgroud)