• 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('用户名密码不正确...')    
  • 相关阅读:
    AutoIT练习
    AutoIT键盘鼠标模拟组件
    javascript class 定义
    JIRA
    vs 命令窗口 常用命令
    jquery 获取参数 plugin
    THE VALUE OF TIME
    哈佛图书馆的二十条训言
    优秀javascript js组件集锦
    UVA 11205 The broken pedometer
  • 原文地址:https://www.cnblogs.com/wtil/p/11634101.html
Copyright © 2020-2023  润新知