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('用户名密码不正确...')    
  • 相关阅读:
    python3 多线程的基本用法
    ASP.NET MVC下的四种验证编程方式
    漫步ASP.NET MVC的处理管线
    asp.net mvc源码分析-Action篇 IModelBinder
    在 Asp.NET MVC 中使用 SignalR 实现推送功能
    说说Python 中的文件操作 和 目录操作
    Python 用 os.walk 遍历目录
    我来说说MVC过滤器
    学习Python必须要知道的常用模块
    Python中的并发编程
  • 原文地址:https://www.cnblogs.com/wtil/p/11634101.html
Copyright © 2011-2022 走看看