zoukankan      html  css  js  c++  java
  • Django-form错误信息展示

    普通字段的错误信息(field.errors.0)

    {% for field in form_obj %}
        <div class="form-group">
            <label for="{{ field.id_for_label }}" class="col-sm-3 control-label">{{ field.label}}</label>
            <div class="col-sm-4">
                {{ field }}
            </div>
            <span class="error_msg">{{ field.errors.0 }}</span>
        </div>
    {% endfor %}

    全局错误信息

    1. 方式1(form_obj.non_field_errors.0)

      <div class="form-group">
          <div class="col-sm-offset-3 col-sm-10">
              <button type="submit" class="btn btn-default">登录</button>
              <span class="error_msg">{{ form_obj.non_field_errors.0 }}</span>
          </div>
      </div>
    2. 方式二(此方式只能使用在,存在的字段上。)

      • 在自定义form全局错误的时候,手动添加全局错误字段
        def clean(self):
        
                username = self.cleaned_data.get('username')
                password = self.cleaned_data.get('password')
                user = auth.authenticate(request=self.request,username=username,password=password)
                if user:
                    auth.login(request=self.request,user=user)
                    return self.cleaned_data
                else:
                    # 之后就可以使用 'username'来获取错误提示
                    self.add_error('username','用户名密码不正确...')
                    raise ValidationError('用户名密码不正确...')    
    3. 方式三(form_obj.errors.all_error

          def clean(self):
      
              username = self.cleaned_data.get('username')
              password = self.cleaned_data.get('password')
              user = auth.authenticate(request=self.request,username=username,password=password)
              if user:
                  auth.login(request=self.request,user=user)
                  return self.cleaned_data
              else:
                  # 自定义名称,添加方法跟字典一样。值也可以随便设置。模板中的使用方法{{ form_obj.errors.all_error }}
                  # 但是使用了这个方法之后,将不能再调用form_obj.errors的as_data、as_json、as_ul、as_text等方法,只能使用字典的默认方法
                  self._errors['all_error']= ['用户名密码不正确...']
                  raise ValidationError('用户名密码不正确...')    
  • 相关阅读:
    andriod 支付宝类似界面图片加文字
    评分条RatingBar Android
    Android 进度条对话框ProgressDialog
    Android 日期对话框DatePickerDialog
    andriod GridLayout
    android:TableLayout表格布局详解
    ArcGIS 10 SP5中文版(ArcGIS10补丁5中文版)
    Engine中如何进行七参数投影转换?
    如何去除栅格影像的黑边?
    资管机构年中规模排名出炉:中信资管规模超万亿
  • 原文地址:https://www.cnblogs.com/wtil/p/11634101.html
Copyright © 2011-2022 走看看