<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC=1,5] >[success] # Form 內部驗證 對一些條件驗證我們也可在,form內部完成 >[success] # 不使用內部驗證的案例 用戶名是否存在 案例,在view層寫額外的判斷 ~~~ def index(request): if request.method == "GET": obj_UserInfo = UserIn() return render(request,"index.html",{"UserInfo": obj_UserInfo}) elif request.method == "POST": ret = {'status':True,'message':None } obj_UserInfo = UserIn(request.POST) #當執行is_valid 時觸發驗證_clean_fields方法s ''' if obj_UserInfo.is_valid(): user = obj_UserInfo.cleaned_data['username'] urser = models.UserInfo.objects.filter(UserName=user).count() print(urser) if urser: obj_UserInfo.errors['username'] = ['用戶名重復'] ret['message'] = obj_UserInfo.errors ret['status'] = False return HttpResponse(json.dumps(ret)) ''' if obj_UserInfo.is_valid(): return HttpResponse(json.dumps(ret)) ~~~ >[success] # 使用form驗證 ~~~ 首先我們先弄清,邏輯順序 1.is_valid 現實用來處理接受值, full_clean執行clean_fields 開始處理字段和正 則,匹配成功保存在字典中 2.然后判斷是否有 clean_字段的方法,在這里就可以做二次判斷,正則以外我們 寫的判斷條件 if hasattr(self, 'clean_%s' % name): value = getattr(self, 'clean_%s' % name)() self.cleaned_data[name] = value 3.所以我們在創建的form驗證類中,寫一個要驗證字段的對應方法 from django.core.exceptions import NON_FIELD_ERRORS,ValidationError 點用一個異常類,主要用來添加 ,錯誤提示,其中一定要注意最后要返回 self.cleaned_data['判斷的字段'] ~~~ >[danger] ##### 單個條件驗證 ~~~ class UserInfo(forms.Form): def clean_username(self): v =self.cleaned_data['username'] if models.UserInfo.objects.filter(UserName = v).count(): from django.core.exceptions import NON_FIELD_ERRORS,ValidationError raise ValidationError('用戶名存在') return v ~~~ >[danger] ##### 多條件處理 因為form判斷機制是循環依次判斷,如果必須兩個字段同時符合特定要求時這時候就給使用clean函數自定義規則,clean是在整體處理后執行,最后公共的錯誤信息保存在all中 ~~~ def clean(self): from django.core.exceptions import NON_FIELD_ERRORS, ValidationError #這個是第二個相當于整個處理完后,吧他們的字典取出來 value_dict = self.cleaned_data v1 = value_dict.get('username') v2 = value_dict.get('pwd') if v1 == "root" and v2 == 1: raise ValidationError('整體的錯誤') return self.cleaned_data ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看