zoukankan      html  css  js  c++  java
  • django之手动创建第三张表 常用字段

      一.表模型如果不写主键,orm会自动创建一个主键

      二:AutoField: int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列

      IntegerField:一个整数类型,范围在 -2147483648 to 2147483647

      CharField 字符类型,必须提供max_length参数, max_length表示字符长度

      DateField 日期字段,日期格式 YYYY-MM-DD,相当于Python中的datetime.date()实例.

      DateTimeField:日期字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于Python中的datetime.datetime()实例

      BooleanField:对到数据库int类型

      不常用字段:SmallIntegerField

            TextField:大文本

            EmailField:虽然写的是email,存的时候,只要是字符串就可以(admin内的校验)

            FileField(Field):存文件

            DecimalField

      orm字段参数

            null

            unique:唯一性约束

            db_index:给某个字段加索引

            default

            DateField和DateTimeField

              auto_now_add = True 表示我要新增一条数据,自动设成当前时间

              auto_now = True 只要修改,就更新成当前时间

      关系字段:

          ForeignKey

            to

            to_field

            related_name

            related_query_name

            on_delete:

              在删除的时候,做什么操作

              models.CASCADE 可以级联删除(lqz觉得不好)

              models.SET_NULL (lqz推荐使用它)

              models.SET_DEFAULT

          OneToOneField

              同ForignKey

          ManyToManyField

              自关联

          多对多关系自动,手动创建第三张表(中介模型)

            第一种:全部手动创建,book跟author没有关联关系(不好,不建议使用)

            第二种:自动创建第三张表(不太好,第三张表如果有其它字段,就不行了)

            第三种:手动创建第三张表,并且用ManyToMany关联,所有的查询跟之前一样,只是增,删,改,需要通过表模型来处理

          db_constraint = False

          only和defer总结

            only和defer 返回结果是querysrt对象内包裹表模型的对象

            only,就是只查我指定的字段,一定会包含id 注意:没查的字段不要再用了

            defer,指定不取哪个字段,一定会包含id 注意:没查的字段不要再用了

  • 相关阅读:
    JeeSite 部署到linux服务器
    Linux下安装Tomcat
    linux下执行sh脚本,提示Command not found解决办法
    PHP no input file specified 三种解决方法
    1286 unknown storage engine innodb
    php 部署在iis HTTP 错误 500.0
    老黄历接口(免注册)
    未来世界的幸存者
    Kafka流处理平台
    首次启动Kafka报Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)
  • 原文地址:https://www.cnblogs.com/xiaocaiyang/p/10279442.html
Copyright © 2011-2022 走看看