【问题标题】:ValueError: Field 'maca' expected a number but got ''ValueError:字段'maca'需要一个数字,但得到''
【发布时间】:2021-12-02 07:05:51
【问题描述】:

我有一个这样的模型

class MacaModel(models.Model):
    maca = models.PositiveIntegerField(
       db_column='Maca', blank=True, null=True
    )
    

我有这样的表格

class MacaForm(models.ModelForm):
    maca = forms.CharField(required=False,widget=forms.TextInput(attrs={'placeholder': 'Maca'}))

我正在尝试从输入发送空值,但收到此错误

ValueError: Field 'maca' expected a number but got ''.

如果我不发送值接受是 None 值或类似的值,我该如何处理?

【问题讨论】:

  • 您可以在表单中使用forms.NumberInput 字段。

标签: python django web


【解决方案1】:

您需要指定该字段应与None一起使用,以防它尚未填写。您可以通过设置empty_value=… parameter [Django-doc]来做到这一点:

class MacaForm(models.ModelForm):
    maca = forms.CharField(
        required=False,
        empty_value=None,
        widget=forms.TextInput(attrs={'placeholder': 'Maca'})
    )

【讨论】:

  • 在choicefield的情况下empty_value如何?
  • @maca:不是ChoiceField,链接指的是CharFieldempty_value。如果您向上滚动一点,您会看到它属于 CharField 部分。
  • 是的,你是对的!但这只是我的模型的一个案例。并非所有人都接受空字段。如果您现在可以帮助我选择字段以设置空案例的值,我将非常感激。顺便说一句 + 1
  • @maca:您应该使用TypedChoiceField。在这种情况下,您可以指定empty_value
  • 非常感谢,非常感谢!
猜你喜欢
  • 2021-12-07
  • 1970-01-01
  • 2020-08-26
  • 1970-01-01
  • 1970-01-01
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
  • 2022-08-23
相关资源
最近更新 更多