2016-11-03 10 views
0

私はDjangoを使用しています。自分のデータベースのフィールドのうち、5つの整数だけを許可するように設定します。私はmax_lengthを見つけました、長さはありますか?ここでモデルフィールドの長さを5の長さに設定する

は私のコード

zip_code = models.IntegerField(max_length=5) 

ある5つの数字を入力する

zip_code = models.IntegerField(length=5) 

フォースユーザーに方法はあります。

+1

私はcharフィールドを使用して、すべての文字が数字であることを確認します –

+0

実際の質問に答えるために、数字が最大5桁の数字を持つことができるということは、その最大値が99999だからです['MaxValueValidator'](https://docs.djangoproject.com/en/1.10/ref/validators/#maxvaluevalidator)。 –

答えて

3

max_lengthIntegerFieldを使用することは意味がありません。

郵便番号を保存する場合は、CharFieldを使用する方がよいでしょう。ゼロで始まる郵便番号を保存することができます。

CharFieldsにはmin_lengthオプションがありませんが、DjangoにはMinLengthValidatorがあります。しかし、RegexValidatorを使用する方が簡単な場合は、正規表現を使用して数字だけを許可し、入力がちょうど5桁であることを確認することができます。

zip_code = models.CharField(max_length=5, validators=[RegexValidator(r'^[0-9]{5}$')]) 

別のオプションはdjango-localflavorからUSZipCodeFieldを使用することです。

関連する問題