Django ModelForm类生成表单

1. 定义ModelForm类

#froms.py    
from django import forms
from app01.modles import User
 
class UserModelForm(forms.ModelForm):
    class Meta:
        model = User     #关联的model类
        fields = "__all__"      #或('name','email','user_type')    #验证哪些字段,"__all__"表示所有字段
        exclude = None          #排除的字段 ("id",)是元组
        labels = None           #提示信息
        help_texts = None       #帮助提示信息
        widgets = None          #自定义插件
#widgets = {
            'username': TextInput(attrs={'class': 'form-control', 'style': 'width:530px;', 'placeholder': u'必填项'}),}
error_messages = None #自定义错误信息(整体错误信息from django.core.exceptions import NON_FIELD_ERRORS) field_classes = None #自定义字段类(也阔以自定义字段) localized_fields = () #本地化,根据settings中TIME_ZONE设置的不同时区显示时间 2. ModelForm验证执行的过程 Form所有的钩子ModelForm都有。 is_valid() --> self.errors --> full_clean() --> self._clean_fields() --> clean_字段名(自定义方法)                           self._clean_form() -->  clean(self)                            self._post_clean() (整体错误) clean_字段名(自定义方法) 可以抛出异常 def clean_username(self): value = self.cleaned_data['username'] if value == 'root': return value else: raise ValidationError("你不是管理员!")

3.views.py 视图处理处理

def ueser_get(request):
if request.method == "POST":
        u_form = UserModelForm(request.POST)
        if u_form.is_valid():
            u_form.save()
            tips = u"增加成功!"
            display_control = ""
        else:
            tips = u"增加失败!"
            display_control = ""
        return render(request, "user_add.html", locals())
    else:
        display_control = "none"
        u_form = UserModelForm()
        return render(request, "user_add.html", locals())

4.user_add.html
u_form.as_p  # 生成列表
 
 

 

转载于:https://www.cnblogs.com/icemonkey/p/10544146.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值