zoukankan      html  css  js  c++  java
  • 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': '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  # 生成列表
    
    
  • 相关阅读:
    打开App显示文件已损坏,打不开,您应该将它移到废纸篓,怎么办?
    Mac下制作openwrt U盘启动盘
    iOS 修改打包后的.ipa应用名字
    使用Aria2+Aria2Ng+OneIndex+OneDrive建立不限流量/离线BT下载/在线观看网盘/在线存储分享平台
    使用微软易升安装纯净版win10
    Mac 配置adb环境变量(为了开Appium)亲测
    CocoaPods 安装及使用(亲测有效)
    1.6 MySQL 基础教程
    Rhythmk 一步一步学 JAVA (19) JAVA IO 文件常用操作
    Rhythmk 一步一步学 JAVA (18) Axis2 创建 WebService
  • 原文地址:https://www.cnblogs.com/icemonkey/p/10544146.html
Copyright © 2011-2022 走看看