【问题标题】:How can i validate fields which are not in forms(means custom ) field on forms.py?我如何验证forms.py上的表单(意味着自定义)字段中没有的字段?
【发布时间】:2017-03-18 06:25:34
【问题描述】:

我想验证不是 form.py 上的表单字段的字段。是否可以 这是我的模型形式:

class Pay_bills(forms.ModelForm):

class Meta:
        model = Recharge_request
        fields = ['mobile_no','amount']

def clean_amount(self):
    amount = self.cleaned_data.get('amount', None)
    print(self.cleaned_data.get('amount'))
    if ( amount < 1 ):
        raise forms.ValidationError("Please enter valid amount") 
    return amount 

还有我的html页面

<div class="form-group" style="display:none;" id="consumer_no_div">
 <label for="inputFirstName" id="field-label" >Consumer No:</label>
 <div>
{% render_field form.mobile_no class="form-control" placeholder="Customer No"%}

<div class="form-group" >
  <label> Bill Amount:</label>
  <div>
     {% render_field form.amount class="form-control" placeholder="Amount"%}
  </div>
</div>
 <div class="form-group" >
  <label>Service Provider:</label>
  <div >
       <select required  class="form-control" id="sel1" name="service_provider" name="sel">
      <option value="">Select Service Provider</option>
          {%for provider in ser_provider%}
              <option value="{{provider.id}}">{{provider}}</option>
           {%endfor%}
      </select>
  </div>
</div>

在这里我想验证不是我的表单字段的服务提供商..我可以在 forms.py 上做吗??提前谢谢

【问题讨论】:

  • 或者我可以在 forms.py 上使用“request.POST.get("service_provider")”获取字段值

标签: django django-forms


【解决方案1】:

那你为什么不把它变成一个表单域呢?

class Pay_bills(forms.ModelForm):
    service_provider = forms.ChoiceField(choices=ser_providers)  # or ModelChoiceField(queryset=ser_providers)

    class Meta:
        model = Recharge_request
        fields = ['mobile_no','amount']

    def clean_service_provider(self):
        ... whatever....

【讨论】:

    猜你喜欢
    • 2018-05-03
    • 2012-08-21
    • 2014-04-24
    • 1970-01-01
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多