Lui*_*dez 2 python forms django attributes web
我正在使用 django 构建表单,但收到此错误:
\n\n“CharField”对象没有属性“is_hidden”
\n\n但 charField 实际上有属性,如您所见:
\n\nclass 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 }\nRun Code Online (Sandbox Code Playgroud)\n\n有人可以帮助我吗?谢谢你!。
\n在您的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)