zoukankan      html  css  js  c++  java
  • django modelform

    ModelForm

        a.  class Meta:

                model,                           # 对应Model的

                fields=None,                     # 字段

                exclude=None,                    # 排除字段

                labels=None,                     # 提示信息

                help_texts=None,                 # 帮助提示信息

                widgets=None,                    # 自定义插件

                error_messages=None,             # 自定义错误信息(整体错误信息from django.core.exceptions import NON_FIELD_ERRORS)

                field_classes=None               # 自定义字段类 (也可以自定义字段)

                localized_fields=('birth_date',) # 本地化,如:根据不同时区显示数据

                如:

                    数据库中

                        2016-12-27 04:10:57

                    setting中的配置

                        TIME_ZONE = 'Asia/Shanghai'

                        USE_TZ = True

                    则显示:

                        2016-12-27 12:10:57

        b. 验证执行过程

            is_valid -> full_clean -> 钩子 -> 整体错误

     

        c. 字典字段验证

            def clean_字段名(self):

                # 可以抛出异常

                # from django.core.exceptions import ValidationError

                return "新值"

        d. 用于验证

            model_form_obj = XXOOModelForm()

            model_form_obj.is_valid()

            model_form_obj.errors.as_json()

            model_form_obj.clean()

            model_form_obj.cleaned_data

        e. 用于创建

            model_form_obj = XXOOModelForm(request.POST)

            #### 页面显示,并提交 #####

            # 默认保存多对多

                obj = form.save(commit=True)

            # 不做任何操作,内部定义 save_m2m(用于保存多对多)

                obj = form.save(commit=False)

                obj.save()      # 保存单表信息

                obj.save_m2m()  # 保存关联多对多信息

     

        f. 用于更新和初始化

            obj = model.tb.objects.get(id=1)

            model_form_obj = XXOOModelForm(request.POST,instance=obj)

            ...

     

            PS: 单纯初始化

                model_form_obj = XXOOModelForm(initial={...})

  • 相关阅读:
    IE9以下程序开发不兼容项目罗列
    Flutter编程:Flutter命令行的学习
    Git merge 和 rebase 进一步比较
    Git merge rebase cherry-pick 以及 游离commit 的测试
    C++指针传递和引用传递的区别 (转载整理)
    git 填坑之 git 暂存区忽略文件
    小众软件:Windows 下优化软件推荐—— Dism++ | 强迫症晚期患者福音
    pip 安装库的时候使用豆瓣镜像 提升效率
    gitignore 忽略某文件夹下 非某后缀名的文件
    小众软件:画简洁风格的原型图
  • 原文地址:https://www.cnblogs.com/jcwit/p/7703983.html
Copyright © 2011-2022 走看看