Django 之form参数验证

 

class RoomCoinForm(forms.Form):
    account_id = forms.IntegerField(required=True)
    play_type = forms.IntegerField(required=True, error_messages={'required': _('请选择游戏')})
    min_amount = forms.FloatField(required=False)
    max_amount = forms.FloatField(required=False)
    count_down = forms.IntegerField(required=False, min_value=1, max_value=60)
    password = forms.CharField(required=True, error_messages={'required': _('请输入密码')})
    验证单个属性
    def clean_play_type(self):
        play_type = self.cleaned_data['play_type']
        if play_type != PLAY_TYPE_SCORE:
            raise forms.ValidationError(_('类型错误'))

        return play_type
    # 验证多个属性
    def clean(self):
        cleaned_data = super(RoomCoinForm, self).clean()
        min_amount = cleaned_data.get('min_amount')
        max_amount = cleaned_data.get('max_amount')
        if not cleaned_data.get('count_down'):
            cleaned_data['count_down'] = 30
        if not min_amount:
            cleaned_data['min_amount'] = 0.1
        if not max_amount:
            cleaned_data['max_amount'] = 9999999999
        if cleaned_data['count_down'] > cleaned_data.get('max_amount'):
            msg = _("最小值不能大于最大值")
            raise forms.ValidationError(msg)
        return cleaned_data

 

转载于:https://my.oschina.net/jamescasta/blog/908907

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值