例として以下のようなモデルがあったとします。
1 2 3 4 5 6 7 8 9 10 11 |
class Shipping(models.Model): # 野菜の出荷重量(kg) volume_weight = models.DecimalField( verbose_name='出荷重量', max_digits=7, decimal_places=3, default=0.000, blank=False, null=False, ) |
この場合、モデルフォームを使ったフォームでは、値が空欄の時はエラーとなりますが、0の場合はOKとなります。
0より大きい値でなければ受け付けない場合は、モデルにバリデーションを設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
class Shipping(models.Model): # 出荷量バリデータ def check_volume_weight(volume_weight): if volume_weight <= 0 : raise ValidationError('0より大きい値を指定してね!') # 野菜の出荷重量(kg) volume_weight = models.DecimalField( verbose_name='出荷重量', max_digits=7, decimal_places=3, default=0.000, blank=False, null=False, # 独自バリデータ validators=[check_volume_weight], ) |