0

djangoフォームでは、エラー無効なリテラル for int() with base 10: " for a field I don't fill. 次の行で発生します。

if form.is_valid():

私が理解していないのは、フィールドにrequired=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)

前もって感謝します、

ロマン

4

2 に答える 2

0

推測ですが、モデルフィールドのデフォルト値が問題を引き起こしている可能性があります。

于 2012-12-09T18:54:21.547 に答える
0

RegexFieldここで使用するのは完全に間違ったフィールドです。とにかくデフォルトのフォームフィールドをオーバーライドする必要がある理由はわかりませんが、オーバーライドする場合は、少なくとも を使用する必要がありますforms.IntegerField。これにより、クリーン時に結果が整数に正しくキャストされます。

于 2012-12-09T18:54:59.207 に答える