• Django表中的字段


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

    -2 常用

                       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

                                -同ForeignKey

                       -ManyToManyField

                                -自关联(自己关联)

                                         -评论表

                                         id  user   article  content   parent_id

                                         1   1      1         你好       null

                                    2   2      1         傻逼        1

                      

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

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

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

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

                       -db_constraint=False

                      

                       -only和defer  

                                # 总结

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

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

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

                      

  • 相关阅读:
    REST-framework快速构建API--生成Swagger接口文档
    Django后端彻底解决跨域问题
    Zabbix实战-简易教程--DB类--ClickHouse
    Django权限控制进阶
    django自定义rbac权限组件(二级菜单)
    jQuery事件委托
    model中的Meta类
    django中ModelForm解决多表单组合显示问题
    Django请求的生命周期
    AJAX
  • 原文地址:https://www.cnblogs.com/zhouhai007/p/10279420.html
Copyright © 2020-2023  润新知