Django ModelForm
一、ModelForm示例
Model
from django.db import models from django.core.validators import * # Create your models here. class UserInfo(models.Model): uname = models.CharField( max_length=20, verbose_name='姓名', error_messages={ 'c1': '优先错信息1', 'c2': '优先错信息2', }, validators=[ RegexValidator(regex='root_\d+', message='错误了', code='c1'), RegexValidator(regex='root_112233\d+', message='又错误了', code='c2'), ]) upwd = models.CharField(max_length=40,verbose_name='密码') uemail = models.EmailField(verbose_name='邮箱') ushou = models.CharField(max_length=20, default='',verbose_name='收件人') uaddress = models.CharField(max_length=100, default='',verbose_name='地址') uyoubian = models.CharField(max_length=6, default='',verbose_name='邮编') uphone = models.CharField(max_length=11, default='',verbose_name='电话') def __str__(self): return self.uname class Meta: db_table = 'userinfo'
ModelForm
#forms.py from django import forms from .models import * class UserInfoForm(forms.ModelForm): class Meta: model = UserInfo #fields = '__all__' fields = ['uname','upwd','uemail'] labels = { # label 名称 'uname': '用户名', } help_texts = { # 帮助信息 'uname': '...' } widgets = { 'uname': forms.TextInput() } error_messages = { # 自定义错误 '__all__':{ }, 'email': { 'required': '邮箱不能为空', 'invalid': '邮箱格式错误..', } } field_classes = { #字段类型,可以强制修改成其他类型 # 'email': Ffields.URLField }
html
<form id="reg_form" action="/user/register/" method="post"> {%csrf_token%} <ul> <li> <label>用户名:</label> <input type="text" name="user_name" id="user_name" value="{{form.uname.value}}"> <span class="error_tip">提示信息</span><span>{{form.uname.errors|first}}</span> </li> <li> <label>密码:</label> <input type="password" name="pwd" id="pwd" value="{{form.upwd.value}}"> <span class="error_tip">提示信息</span><span>{{form.upwd.errors|first}}</span> </li> <li> <label>确认密码:</label> <input type="password" name="cpwd" id="cpwd"> <span class="error_tip">提示信息</span> </li> <li> <label>邮箱:</label> <input type="text" name="email" id="email" value="{{form.uemail.value}}"> <span class="error_tip">提示信息</span><span>{{form.uemail.errors|first}}</span> </li> <li class="reg_sub"> <input type="submit" value="注 册" name=""> </li> </ul> </form>

浙公网安备 33010602011771号