zoukankan      html  css  js  c++  java
  • Django基础-002 Models的属性与字段

    1.models字段类型

    AutoField():一个IntegerField,根据可用ID自动递增。如果没指定主键,就创建它自动设置为主键。

    IntegerField():一个整数;

    FloatField:浮点型

    CharField(max_length = 20):字符串字段,字段最大长度为20

    DateField(verbose_name='创建时间',auto_now=False, auto_now_add=False):日期;参数auto_now:每次保存对象时,自动设置该字段为当前时间。用于"最后一次修改"的时间戳. 注意,它总是使用当前日期, 默认为False。参数auto_now_add:当对象第一次被创建时自动设置当前时间。用于创建时间的时间戳. 它总是使用当前日期,默认为False;参数auto_now auto_now_add default是互相排斥的,组合会发生错误

    TImeFiled():时间,参数同DateField

    TextField():一个很长的的文本字段,不超过4000字符

    BooleanField():布尔字段,True或False;

    NullBooleanField():值为Null,True,False;

    DecimalField():十进制浮点数,参数max_digits表示总数,参数decimal_places表示小数点数

    FileField():上传文件字段

    ImageField():用于上传图片并验证图片合法性,需定义upload_to参数,使用本字段需安装pip install pillow图片库;设置upload_to 到某个目录下,需要在settings.py中配置多媒体文件路径: MEDIA_ROOT = os.path.join(BASE_DIR,'static'); models.ImageField(upload_to="article_img" )表示会将从static目录下的article_img文件夹上传图片

    OneToOneField(to, on_delete, parent_link = False):一对一

    ForeignKey(to, on_delete):一对多

    ManyToManyField(to):多对多

    2.字段参数

    null:如果设置为True,当该字段为空时,Django会将数据库中该字段设置为NULL。默认为False 。

    blank:如果设置为True,该字段允许为空。默认为False。

    default:该字段的默认值。可以是一个值或者是个可调用的对象,如果是个可调用对象,每次实例化模型时都会调用该对象。

    primary_key:如果设置为 True ,将该字段设置为该模型的主键。

    unique:如果设置为 True,这个字段的值必须在整个表中保持唯一。

    verbose_name:任何字段类型都接收一个可选的位置参数,如果未指定Django会自动使用字段的属性名作为该参数值,并且把下划线转换为空格。

    max_length:设置默认长度,一般在CharField、TextField、EmailField等文本字段设置

    choices:设置该字段的可选值,本字段的值是一个二维元素的元祖;元素的第1个值为实际存储的值,第2个值为HTML页面显示的值

    upload_to:设置上传路径,ImageField和FileField字段需要设置此参数,如果路径不存在,会自动创建

    db_index:索引,一般常用来做查询的字段设置为索引,设置为True表示设置索引

    db_constraint:ForeignKey /ManyToManyField/OneToOneField时有这个字段,为False时表示不受母表约束,母表删除数据时外键不受影响

    on_delete:ForeignKey /ManyToManyField/OneToOneField时有这个字段有这个字段,一般值为models.DO_NOTHING时表示母表删除数据时,外键不做任何处理,经常和db_constraint=False连用

    3.Meta属性

    verbose_name:设置对象名称(例如usecms),若没有设置,则默认为该类名的小写分词形式,例如类名为CamelCase会被转换为camel

    verbose_name_plural:设置对象名称复数(例如usercms),一般设置跟verbose_name一样,verbose_name_plural=verbose_name否则会默认加s;
    db_table:设置映射的数据表名,默认为“应用名_模型名”,即用该模型所在app的名称加本模型类的名称

    ordering :排序规则,按照哪个字段排unique_together序,加上负号是降序 ,ordering = ['id','-create_time']

    unique_together :联合主键 unique_together = ('name','id_card')
    proxy:设置True or False,设置本模型及所有继承本模型的子模型是否为代理模型;
    abstract:设置True or False,设置本模型类是否为抽象基类;如果是抽象基类,那么是不会创建这张表的,这张表用来作为基类被其他的表继承

  • 相关阅读:
    MOSS 之 自定义MembershipProvider实现Forms方式验证——学习实战篇
    (转)jquery.validate全攻略
    LinQ To Entity的增删改查(转)
    如何将程序集(.dll文件)添加到GAC(全局程序集缓存)?
    CSS Sprites (转)
    如何查看MOSS未知错误?
    用.Net开发Windows服务初探(转)
    早该知道的7个JavaScript技巧(转)
    最容易犯的13个JavaScript错误——转
    jQuery插件开发全解析(转)
  • 原文地址:https://www.cnblogs.com/cjxxl1213/p/13555839.html
Copyright © 2011-2022 走看看