#python #django #forms #web #attributes
#python #django #формы #веб #атрибуты
Вопрос:
я создаю форму с помощью 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. ваш вопрос звучит запутанно. Поделитесь ошибкой здесь
Ответ №1:
В вашем widgets
словаре вы задаете этим двум полям значение FormField
subtypes, а не Widget
подтипы:
'precio': forms.CharField(widget=forms.NumberInput),
'cantidad': forms.CharField(widget=forms.NumberInput),
Это неправильно — CharField
это не виджет. Если вы хотите использовать NumberInput
виджет для этих полей, установите его следующим образом:
'precio': forms.NumberInput
Если вы хотите изменить тип поля формы по умолчанию для этих полей модели (мое лучшее предположение о том, что вы пытаетесь сделать с вашими существующими значениями), используйте field_classes
dict или определите поля самостоятельно. НАПРИМЕР, что-то вроде этого (другие поля опущены):
field_classes = {'precio': forms.CharField}
widgets = {'precio': forms.NumberInput}
Комментарии:
1. Да, ‘precio’: формы. У меня сработал NumberInput. Это я и пытался сделать. Спасибо!