2012-12-09 69 views
0

在Django窗体中,我有错误无效字面值为int()与基10:“一个字段我不填写。在该行:?django required =假无效文字为int()与基数10:''

if form.is_valid(): 

我不明白的是,该领域已要求= false,这样,如果该字段为空,Django的不应该试图进行验证,没有

这里是型号:

prelexDosId = models.IntegerField(max_length=7, unique=True, blank=True, null=True, default=None) 

这里的表格:

prelexDosId = forms.RegexField(regex=r'^[1-9]([0-9]?){6}$', required=False) 

谢谢你在前进,

罗曼

+0

这对我来说很复杂的边界'1 <= x <= 9999999' –

+0

正是!有没有简单的方法来限制价值? – rom

+0

'FormField'和'max_value','min_value'是你正在寻找的东西。但是,如果您的限制来自数据库限制,则Django会附带'SmallPositiveIntegerField'。 –

回答

0

RegexField完全是在这里使用的错误字段。我不明白为什么你需要重写默认的表单字段,但是如果你这样做,你至少应该使用forms.IntegerField,它会在清除时正确地将结果转换为整数。

+0

这是一个修改形式,所以用户可以删除该值!如果我不使用正则表达式,我可以使用什么来限制我的字段,使其值在1到9999999之间或空? – rom

+0

正如我的文档链接所示,'IntegerField'具有'max_value'和'min_value'属性。 –

+0

感谢它的工作!我很愚蠢的使用正则表达式!再次感谢你。 – rom

0

我只是猜测,但也许在模型中字段的默认值是造成问题。

+0

它与模型字段上的'default'无关。空'RegexField'是'''',它被传递到模型字段并被转换为'int',从而产生错误。 –

相关问题