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-29 10:41:51
        setting中的配置
          TIME_ZONE = "Asia/Shanghai"
          USE_TZ = True
          则显示:
            2016-12-29 18:41:51 (东八区时间)

    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(initial={...})













      
      
      



        












    人生短短数十载,经不起几次重头再来
  • 相关阅读:
    OPENGLES 绘制纹理带黑圈pre-multiplying
    listview相关代码整理
    时区列表
    (迪杰斯特拉)Dijkstra算法
    全源最短路径(Floyd算法)
    go配置私有仓库 (go mod配置私有仓库)
    mingw+gcc 10.1下载
    线段树应用及概况
    清理docker常用命令
    minio设置永久访问链接
  • 原文地址:https://www.cnblogs.com/bk770466199/p/6232087.html
Copyright © 2011-2022 走看看