• Django 模型相关


    字段

    参考:https://www.cnblogs.com/haoshine/p/5821939.html

    字段名参数含义
    AutoField一个能够根据可用ID自增的 IntegerField,一般会自动创建
    BooleanField一个真/假字段
    CharField(max_length)一个字符串字段,适用于中小长度的字符串
    CommaSeparatedIntegerField(max_length)一个用逗号分隔开的整数字段
    DateField([auto_now], [auto_now_add])日期字段
    DateTimeField时间日期字段,接受跟 DateField 一样的额外选项
    EmailField一个能检查值是否是有效的电子邮件地址的 CharField
    FileField(upload_to)一个文件上传字段
    FilePathField(path,[match],[recursive])一个拥有若干可选项的字段,选项被限定为文件系统中某个目录下的文件名
    FloatField(max_digits,decimal_places)一个浮点数,对应Python中的 float 实例
    ImageField(upload_to, [height_field] ,[width_field])像 FileField 一样,只不过要验证上传的对象是一个有效的图片
    IntegerField一个整数
    IPAddressField一个IP地址,以字符串格式表示
    NullBooleanField就像一个 BooleanField ,支持 None /Null
    PhoneNumberField和 IntegerField 类似,但必须是正值
    PositiveSmallIntegerField与 PositiveIntegerField 类似,但只允许小于一定值的值,最大值取决于数据库.
    SlugField嵌条 就是一段内容的简短标签,这段内容只能包含字母、数字、下划线或连字符。通常用于URL中
    SmallIntegerField和 IntegerField 类似,但是只允许在一个数据库相关的范围内的数值(通常是-32,768到+32,767)
    TextField一个不限长度的文字字段
    TimeField时分秒的时间显示。它接受的可指定参数与 DateField 和 DateTimeField 相同
    URLField用来存储URL的字段
    USStateField美国州名称缩写,两个字母
    XMLField(schema_path)它就是一个 TextField ,只不过要检查值是匹配指定schema的合法XML

    字段参数

    参数名意义
    null如果设置为 True 的话,Django将在数据库中存储空值为 NULL 。默认为 False
    blank如果是 True ,该字段允许留空,默认为 False
    choices一个包含双元素元组的可迭代的对象,用于给字段提供选项
    db_column当前字段在数据库中对应的列的名字
    db_index如果为 True ,Django会在创建表格时对这一列创建数据库索引
    default字段的默认值
    editable如果为 False ,这个字段在管理界面或表单里将不能编辑。默认为 True
    help_text在管理界面表单对象里显示在字段下面的额外帮助文本
    primary_key如果为 True ,这个字段就会成为模型的主键
    radio_admin默认地,对于 ForeignKey 或者拥有 choices 设置的字段,Django管理界面会使用列表选择框()。如果 radio_admin 设置为 True 的话,Django就会使用单选按钮界面
    unique如果是 True ,这个字段的值在整个表中必须是唯一的
    unique_for_date把它的值设成一个 DataField 或者 DateTimeField 的字段的名称,可以确保字段在这个日期内不会出现重复值
    unique_for_month和 unique_for_date 类似,只是要求字段在指定字段的月份内唯一
    unique_for_year和 unique_for_date 及 unique_for_month 类似,只是时间范围变成了一年
    verbose_name除 ForeignKey 、 ManyToManyField 和 OneToOneField 之外的字段都接受一个详细名称作为第一个位置参数

    模型之间的关系

    一对多(Foreignkey)
    ForeignKey(to,on_delete,**options)
    
    • 1
    • 参数
    1. to:必填,指定所关联的 Model
    2. on_delete:必填,主表执行删除操作时对子表的影响,即子表要执行的操作,常用值为 CASCADE
    CASCADE,级联删除,它是大部分 ForeignKey 的定义时选择的约束。它的表现是删除了“主”,则“子”也会被自动删除。
    
    • 1
    1. to_field:可选,关联对象的字段名称
    2. db_constraint:可选,默认值是 True,它会在数据库中创建外键约束,维护数据完整性
    3. related_name:可选,这个字段设置的值用于反向查询,默认不需要设置,Django 会设置其为“小写模型名 _set”
    4. related_query_name:可选,这个名称用于反向过滤
    一对一(OneToOneFiled)

    OneToOneFiled 继承自 ForeignKey, ForeignKey 最显著的区别在于反向查询上,ForeignKey 反向查询返回的是一个对象实例列表,而 OneToOneFiled 反向查询返回的是一个对象实例,经常用于对已有 Model 的扩展。

    多对多(ManyToManyFiled)
    ManyToManyFiled(to,**options)
    
    • 1
    • 参数
    1. to:必填,指定所关联的 Model
    2. relate_name:可选,这个字段设置的值用于反向查询,默认不需要设置,Django 会设置其为“小写模型名 _set”
    3. db_table:可选,用于指定中间表的名称,如果没有提供,Django 会使用多对多字段的名称和包含这张表的 Model 的名称组合起来构成中间表的名称,当然也会包含 index 前缀
    4. through:可选,用于指定中间表,这个参数不需要设置,Django会自动生成隐式的 through Model

    参考:http://c.biancheng.net/view/7645.html

    匹配符

    6.: 。 例:)
    7. : 。 例:filter(job__lt=5)
    8. : 。 例:filter(job__lte=5)
    9. : 。 例:filter(job__in=[1,2,3])
    10. :。 例:filter(job__startswith=‘开发’)
    11. :。 filter(job__istartswith=‘开发’)
    12. : 。 filter(job__endswith=‘开发’)
    13. : 。 filter(job__iendswith=‘开发’)
    14. : 。 filter(job__range=‘开发’)
    15. : 。 filter(job__year=‘2018’)
    16.: 。 filter(job__month=‘12’)
    17. : 。 例:filter(job__day=30)
    18. : 。 例:filter(job__isnull=True/False)

    名称含义用法
    __exact精确等于,如SQL的like’开发’filter(user__exact=‘小明’)
    __iexact精确等于并忽略大小写filter(user__iexact=‘小明’)
    __contains模糊匹配,如SQL的like’%123%’filter(use__contains =‘小明’)
    __icontains模糊匹配,忽略大小写filter(user__icontains=‘小明’)
    __gt大于filter(age__gt =5)
    __gte大于等于filter(age__gte =5)
    __lt小于filter(age__lt =5)
    __lte小于等于filter(age__lte =5)
    __in判断是否在列表内filter(user__in=‘小明’)
    __startswith以…开头filter(user__startswith=‘小’)
    __istartswith以…开头并忽略大小写filter(user__istartswith=‘小明’)
    __endswith以…结尾filter(user__endswith=‘明’)
    __iendswith以…结尾并忽略大小写filter(user__iendswith=‘明’)
    __range在…范围内filter(user__range=‘小明’)
    __year日期字段的年份filter(user__year=‘2022’)
    __month日期字段的月份filter(user__month=‘09’)
    __day日期字段的天数filter(user__day=17)
    __isnull判断是否为空filter(email__isnull=True)
  • 相关阅读:
    【考研数学神作】你不能错过的学习教材
    【Delphi】Android 开发HTTP请求出错解决方案
    CleanMyMac X2024告别硬盘空间不足,让您的Mac电脑极速如新
    一文细谈SNN的基本数学原理,LIF模型,STDP与STBP学习方法
    三季度现货白银基本面分析
    Nacos实现高可用
    c# Json转C#实体
    如何写好CRUD?
    电子信息考研择校
    Pytorch中的view()函数的用法
  • 原文地址:https://blog.csdn.net/liudadaxuexi/article/details/126903944