【问题标题】:the object has no attribute 'is_hidden' with django该对象没有 django 的属性“is_hidden”
【发布时间】:2019-08-29 02:01:37
【问题描述】:

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

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

【问题讨论】:

  • 您的问题听起来令人困惑。在此处分享错误

标签: python django forms web attributes


【解决方案1】:

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

    'precio': forms.CharField(widget=forms.NumberInput),
    'cantidad': forms.CharField(widget=forms.NumberInput),

这是不对的 - CharField 不是小部件。如果您想为这些字段使用 NumberInput 小部件,请将其设置为:

'precio': forms.NumberInput

如果您想更改这些模型字段的默认表单字段类型(我的最佳猜测是您尝试使用现有值做什么)使用field_classes dict 或自己定义字段。 EG 类似这样(省略其他字段):

field_classes = {'precio': forms.CharField}
widgets = {'precio': forms.NumberInput}

【讨论】:

  • 是的,'precio': forms.NumberInput 为我工作。那是我试图做的。谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-08-31
  • 2020-02-11
  • 2015-02-19
  • 2016-03-30
  • 2021-04-05
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多