у объекта нет атрибута ‘is_hidden’ с django

#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. Это я и пытался сделать. Спасибо!