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>

 

posted @ 2018-08-28 19:57  逐梦客!  阅读(138)  评论(0)    收藏  举报