字段类型选择:
AutoField(Field)
- int自增列,必须填入参数 primary_key=True BigAutoField(AutoField)
- bigint自增列,必须填入参数 primary_key=True 注:当model中如果没有自增列,则自动会创建一个列名为id的列
from django.db import models class UserInfo(models.Model):
# 自动创建一个列名为id的且为自增的整数列
username = models.CharField(max_length=32) class Group(models.Model):
# 自定义自增列
nid = models.AutoField(primary_key=True)
name = models.CharField(max_length=32) SmallIntegerField(IntegerField):
- 小整数 -32768 ~ 32767 PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)
- 正小整数 0 ~ 32767
IntegerField(Field)
- 整数列(有符号的) -2147483648 ~ 2147483647 PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)
- 正整数 0 ~ 2147483647 BigIntegerField(IntegerField):
- 长整型(有符号的) -9223372036854775808 ~ 9223372036854775807 自定义无符号整数字段 class UnsignedIntegerField(models.IntegerField):
def db_type(self, connection):
return 'integer UNSIGNED' PS: 返回值为字段在数据库中的属性,Django字段默认的值为:
'AutoField': 'integer AUTO_INCREMENT',
'BigAutoField': 'bigint AUTO_INCREMENT',
'BinaryField': 'longblob',
'BooleanField': 'bool',
'CharField': 'varchar(%(max_length)s)',
'CommaSeparatedIntegerField': 'varchar(%(max_length)s)',
'DateField': 'date',
'DateTimeField': 'datetime',
'DecimalField': 'numeric(%(max_digits)s, %(decimal_places)s)',
'DurationField': 'bigint',
'FileField': 'varchar(%(max_length)s)',
'FilePathField': 'varchar(%(max_length)s)',
'FloatField': 'double precision',
'IntegerField': 'integer',
'BigIntegerField': 'bigint',
'IPAddressField': 'char(15)',
'GenericIPAddressField': 'char(39)',
'NullBooleanField': 'bool',
'OneToOneField': 'integer',
'PositiveIntegerField': 'integer UNSIGNED',
'PositiveSmallIntegerField': 'smallint UNSIGNED',
'SlugField': 'varchar(%(max_length)s)',
'SmallIntegerField': 'smallint',
'TextField': 'longtext',
'TimeField': 'time',
'UUIDField': 'char(32)', BooleanField(Field)
- 布尔值类型 NullBooleanField(Field):
- 可以为空的布尔值 CharField(Field)
- 字符类型
- 必须提供max_length参数, max_length表示字符长度 TextField(Field)
- 文本类型 EmailField(CharField):
- 字符串类型,Django Admin以及ModelForm中提供验证机制 IPAddressField(Field)
- 字符串类型,Django Admin以及ModelForm中提供验证 IPV4 机制 GenericIPAddressField(Field)
- 字符串类型,Django Admin以及ModelForm中提供验证 Ipv4和Ipv6
- 参数:
protocol,用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6"
unpack_ipv4, 如果指定为True,则输入::ffff:192.0.2.1时候,可解析为192.0.2.1,开启刺功能,需要protocol="both" URLField(CharField)
- 字符串类型,Django Admin以及ModelForm中提供验证 URL SlugField(CharField)
- 字符串类型,Django Admin以及ModelForm中提供验证支持 字母、数字、下划线、连接符(减号) CommaSeparatedIntegerField(CharField)
- 字符串类型,格式必须为逗号分割的数字 UUIDField(Field)
- 字符串类型,Django Admin以及ModelForm中提供对UUID格式的验证 FilePathField(Field)
- 字符串,Django Admin以及ModelForm中提供读取文件夹下文件的功能
- 参数:
path, 文件夹路径
match=None, 正则匹配
recursive=False, 递归下面的文件夹
allow_files=True, 允许文件
allow_folders=False, 允许文件夹 FileField(Field)
- 字符串,路径保存在数据库,文件上传到指定目录
- 参数:
upload_to = "" 上传文件的保存路径
storage = None 存储组件,默认django.core.files.storage.FileSystemStorage ImageField(FileField)
- 字符串,路径保存在数据库,文件上传到指定目录
- 参数:
upload_to = "" 上传文件的保存路径
storage = None 存储组件,默认django.core.files.storage.FileSystemStorage
width_field=None, 上传图片的高度保存的数据库字段名(字符串)
height_field=None 上传图片的宽度保存的数据库字段名(字符串) DateTimeField(DateField)
- 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] DateField(DateTimeCheckMixin, Field)
- 日期格式 YYYY-MM-DD TimeField(DateTimeCheckMixin, Field)
- 时间格式 HH:MM[:ss[.uuuuuu]] DurationField(Field)
- 长整数,时间间隔,数据库中按照bigint存储,ORM中获取的值为datetime.timedelta类型 FloatField(Field)
- 浮点型 DecimalField(Field)
- 10进制小数
- 参数:
max_digits,小数总长度
decimal_places,小数位长度 BinaryField(Field)
- 二进制类型 字段中的参数详解:
null 数据库中字段是否可以为空(null=True)
db_column 数据库中字段的列名(db_column="test")
db_tablespace
default 数据库中字段的默认值
primary_key 数据库中字段是否为主键(primary_key=True)
db_index 数据库中字段是否可以建立索引(db_index=True)
unique 数据库中字段是否可以建立唯一索引(unique=True)
unique_for_date 数据库中字段【日期】部分是否可以建立唯一索引
unique_for_month 数据库中字段【月】部分是否可以建立唯一索引
unique_for_year 数据库中字段【年】部分是否可以建立唯一索引
auto_now 更新时自动更新当前时间
auto_now_add 创建时自动更新当前时间
verbose_name Admin中显示的字段名称
blank Admin中是否允许用户输入为空 表单提交时可以为空
editable Admin中是否可以编辑
help_text Admin中该字段的提示信息
choices Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作
如:gf = models.IntegerField(choices=[(0, '何穗'),(1, '大表姐'),],default=1) error_messages 自定义错误信息(字典类型),从而定制想要显示的错误信息;
字典健:null, blank, invalid, invalid_choice, unique, and unique_for_date
如:{'null': "不能为空.", 'invalid': '格式错误'} validators 自定义错误验证(列表类型),从而定制想要的验证规则
from django.core.validators import RegexValidator
from django.core.validators import EmailValidator,URLValidator,DecimalValidator,\
MaxLengthValidator,MinLengthValidator,MaxValueValidator,MinValueValidator
如:
test = models.CharField(
max_length=32,
error_messages={
'c1': '优先错信息1',
'c2': '优先错信息2',
'c3': '优先错信息3',
},
validators=[
RegexValidator(regex='root_\d+', message='错误了', code='c1'),
RegexValidator(regex='root_112233\d+', message='又错误了', code='c2'),
EmailValidator(message='又错误了', code='c3'), ]
)

字段类型选择:    AutoField(Field)        - int自增列,必须填入参数 primary_key=True
    BigAutoField(AutoField)        - bigint自增列,必须填入参数 primary_key=True
        注:当model中如果没有自增列,则自动会创建一个列名为id的列        from django.db import models
        class UserInfo(models.Model):            # 自动创建一个列名为id的且为自增的整数列            username = models.CharField(max_length=32)
        class Group(models.Model):            # 自定义自增列            nid = models.AutoField(primary_key=True)            name = models.CharField(max_length=32)
    SmallIntegerField(IntegerField):        - 小整数 -32768 ~ 32767
    PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)        - 正小整数 0 ~ 32767    IntegerField(Field)        - 整数列(有符号的) -2147483648 ~ 2147483647
    PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)        - 正整数 0 ~ 2147483647
    BigIntegerField(IntegerField):        - 长整型(有符号的) -9223372036854775808 ~ 9223372036854775807
    自定义无符号整数字段
        class UnsignedIntegerField(models.IntegerField):            def db_type(self, connection):                return 'integer UNSIGNED'
        PS: 返回值为字段在数据库中的属性,Django字段默认的值为:            'AutoField': 'integer AUTO_INCREMENT',            'BigAutoField': 'bigint AUTO_INCREMENT',            'BinaryField': 'longblob',            'BooleanField': 'bool',            'CharField': 'varchar(%(max_length)s)',            'CommaSeparatedIntegerField': 'varchar(%(max_length)s)',            'DateField': 'date',            'DateTimeField': 'datetime',            'DecimalField': 'numeric(%(max_digits)s, %(decimal_places)s)',            'DurationField': 'bigint',            'FileField': 'varchar(%(max_length)s)',            'FilePathField': 'varchar(%(max_length)s)',            'FloatField': 'double precision',            'IntegerField': 'integer',            'BigIntegerField': 'bigint',            'IPAddressField': 'char(15)',            'GenericIPAddressField': 'char(39)',            'NullBooleanField': 'bool',            'OneToOneField': 'integer',            'PositiveIntegerField': 'integer UNSIGNED',            'PositiveSmallIntegerField': 'smallint UNSIGNED',            'SlugField': 'varchar(%(max_length)s)',            'SmallIntegerField': 'smallint',            'TextField': 'longtext',            'TimeField': 'time',            'UUIDField': 'char(32)',
    BooleanField(Field)        - 布尔值类型
    NullBooleanField(Field):        - 可以为空的布尔值
    CharField(Field)        - 字符类型        - 必须提供max_length参数, max_length表示字符长度
    TextField(Field)        - 文本类型
    EmailField(CharField):        - 字符串类型,Django Admin以及ModelForm中提供验证机制
    IPAddressField(Field)        - 字符串类型,Django Admin以及ModelForm中提供验证 IPV4 机制
    GenericIPAddressField(Field)        - 字符串类型,Django Admin以及ModelForm中提供验证 Ipv4和Ipv6        - 参数:            protocol,用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6"            unpack_ipv4, 如果指定为True,则输入::ffff:192.0.2.1时候,可解析为192.0.2.1,开启刺功能,需要protocol="both"
    URLField(CharField)        - 字符串类型,Django Admin以及ModelForm中提供验证 URL
    SlugField(CharField)        - 字符串类型,Django Admin以及ModelForm中提供验证支持 字母、数字、下划线、连接符(减号)
    CommaSeparatedIntegerField(CharField)        - 字符串类型,格式必须为逗号分割的数字
    UUIDField(Field)        - 字符串类型,Django Admin以及ModelForm中提供对UUID格式的验证
    FilePathField(Field)        - 字符串,Django Admin以及ModelForm中提供读取文件夹下文件的功能        - 参数:                path,                      文件夹路径                match=None,                正则匹配                recursive=False,           递归下面的文件夹                allow_files=True,          允许文件                allow_folders=False,       允许文件夹
    FileField(Field)        - 字符串,路径保存在数据库,文件上传到指定目录        - 参数:            upload_to = ""      上传文件的保存路径            storage = None      存储组件,默认django.core.files.storage.FileSystemStorage
    ImageField(FileField)        - 字符串,路径保存在数据库,文件上传到指定目录        - 参数:            upload_to = ""      上传文件的保存路径            storage = None      存储组件,默认django.core.files.storage.FileSystemStorage            width_field=None,   上传图片的高度保存的数据库字段名(字符串)            height_field=None   上传图片的宽度保存的数据库字段名(字符串)
    DateTimeField(DateField)        - 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]
    DateField(DateTimeCheckMixin, Field)        - 日期格式      YYYY-MM-DD
    TimeField(DateTimeCheckMixin, Field)        - 时间格式      HH:MM[:ss[.uuuuuu]]
    DurationField(Field)        - 长整数,时间间隔,数据库中按照bigint存储,ORM中获取的值为datetime.timedelta类型
    FloatField(Field)        - 浮点型
    DecimalField(Field)        - 10进制小数        - 参数:            max_digits,小数总长度            decimal_places,小数位长度
    BinaryField(Field)        - 二进制类型
字段中的参数详解:    null                数据库中字段是否可以为空(null=True)    db_column           数据库中字段的列名(db_column="test")    db_tablespace    default             数据库中字段的默认值    primary_key         数据库中字段是否为主键(primary_key=True)    db_index            数据库中字段是否可以建立索引(db_index=True)    unique              数据库中字段是否可以建立唯一索引(unique=True)    unique_for_date     数据库中字段【日期】部分是否可以建立唯一索引    unique_for_month    数据库中字段【月】部分是否可以建立唯一索引    unique_for_year     数据库中字段【年】部分是否可以建立唯一索引    auto_now            更新时自动更新当前时间    auto_now_add        创建时自动更新当前时间    verbose_name        Admin中显示的字段名称    blank               Admin中是否允许用户输入为空 表单提交时可以为空    editable            Admin中是否可以编辑    help_text           Admin中该字段的提示信息    choices             Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作                        如:gf = models.IntegerField(choices=[(0, '何穗'),(1, '大表姐'),],default=1)
    error_messages      自定义错误信息(字典类型),从而定制想要显示的错误信息;                        字典健:null, blank, invalid, invalid_choice, unique, and unique_for_date                        如:{'null': "不能为空.", 'invalid': '格式错误'}
    validators          自定义错误验证(列表类型),从而定制想要的验证规则                        from django.core.validators import RegexValidator                        from django.core.validators import EmailValidator,URLValidator,DecimalValidator,\                        MaxLengthValidator,MinLengthValidator,MaxValueValidator,MinValueValidator                        如:                            test = models.CharField(                                max_length=32,                                error_messages={                                    'c1': '优先错信息1',                                    'c2': '优先错信息2',                                    'c3': '优先错信息3',                                },                                validators=[                                    RegexValidator(regex='root_\d+', message='错误了', code='c1'),                                    RegexValidator(regex='root_112233\d+', message='又错误了', code='c2'),                                    EmailValidator(message='又错误了', code='c3'), ]                            )

Django model 字段类型及选项解析的更多相关文章

  1. Django model 字段类型及选项解析---转载

    model field 类型1.AutoField() 自增的IntegerField,通常不用自己设置,若没有设置主键,Django会自动添加它为主键字段,Django会自动给每张表添加一个自增的p ...

  2. Django model字段类型清单

    转载:<Django model字段类型清单> Django 通过 models 实现数据库的创建.修改.删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField ...

  3. Django model 字段类型清单

    Django model字段类型清单 Django 通过 models 实现数据库的创建.修改.删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField 一个自动递增的整型字 ...

  4. Django——model字段类型 2

    Django 通过models实现数据库的创建.修改.删除等操作,Django中model作为数据资源指定了字段以及一些相应的功能,通常每个model对应数据库中的一张表,(每个model都是从dja ...

  5. Django model字段类型(转)

    AutoField     一个 IntegerField, 添加记录时它会自动增长. 你通常不需要直接使用这个字段; 如果你不指定主键的话,系统会自动添加一个主键字段到你的 model.(参阅 _自 ...

  6. Django文档——Model字段类型(Field Types)

    大部分内容参考自http://wrongwaycn.github.io/django11/topics/db/models/index.html#topics-db-models ,内容是django ...

  7. django【ORM】model字段类型

    1.AutoField 一个自增的IntegerField,一般不直接使用,Django会自动给每张表添加一个自增的primary key. 2.BigIntegerField 64位整数, -922 ...

  8. python-django 模型model字段类型说明

    V=models.CharField(max_length=None<, **options>) #varchar V=models.EmailField(<max_length=7 ...

  9. Django model 字段详解

    字段类型选择: AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列,必须填入参数 ...

随机推荐

  1. 跟随我在oracle学习php(7)

    盒子模型布局 盒子模型:每个标签都是一个盒子 计算宽高:box-sizing:border-box盒子的宽度就是设置的宽度,里面的内容自适应 从里到外:padding(内边距) Border(边框) ...

  2. Linux内核分析--理解进程调度时机、跟踪分析进程调度和进程切换的过程

    ID:fuchen1994 姓名:江军 作业要求: 理解Linux系统中进程调度的时机,可以在内核代码中搜索schedule()函数,看都是哪里调用了schedule(),判断我们课程内容中的总结是否 ...

  3. 组队项目,Main队伍

    本小组经过讨论,决定做的项目为----厨娘 分组情况: 1.界面设计:胡骏 2.前段,界面代码实现:梅庆 3.后台.逻辑处理:唐正奎.张军洪.袁成杰 4.数据库的建立与存写:张军洪.蒋利平 厨娘——需 ...

  4. css实现半圆和圆

    1.半圆 半圆分为:上半圆.下半圆.左半圆.右半圆,我们只要学会制作某一个方向的半圆,其他方向的半圆都可以轻松实现,其原理都一样. 假如我们要制作上半圆,实现原理:把高度height设置为宽度widt ...

  5. LeetCode 47 全排列II

    题目: 给定一个可包含重复数字的序列,返回所有不重复的全排列. 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 解题思路: 与上一题相比,这题多了一 ...

  6. php优秀框架codeigniter学习系列——CI_Security类学习

    这篇文章主要介绍CI核心框架工具类CI_Security. 安全类包含了一些方法,用于安全的处理输入数据,帮助你创建一个安全的应用.以下选取类中的重点方法进行说明. __construct() 在构造 ...

  7. idea设置代码提示不区分大小写

    idea设置代码提示不区分大小写 intellij idea默认下的代码提示是区分大小写的,例如类方法名过长.类的名字过长等,完全通过手打的话较为繁琐,这里简单的设置下即可. 把 Case sensi ...

  8. vs2015和Oracle在一起时的Shit问题

    VS2015在连接Oracle时,必须要安装到一个不含有空格的目录中去,否则连接不上Oracle,至于为什么,不知道,鬼知道,日的. 如果你不幸以前安装过VS2015,安装到它的默认的什么“progr ...

  9. 2.常用adb命令的使用

    使用电脑连接手机,查看手机的唯一编号,如果是模拟器,就是显示地址和端口号: adb devices 使用adb安装app应用: adb install apk路径和包名 -r 允许覆盖安装 -s 将a ...

  10. JAVA将汉字转换为全拼以及返回中文的首字母,将字符串转移为ASCII码

    import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseT ...