Django ORM 常用字段和参数

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()实例。

二:自定义char类型字段

首先要知道在常用字段中CharField默认的字段类型为varchar类型

如何指定自定义char类型字段:

1.先自定义一个类

class FixedCharField(models.Field): #FixedCharField为自己取的名称,不是固定的

"""
自定义的char类型的字段类
"""
def __init__(self, max_length, *args, **kwargs):
self.max_length = max_length
super(FixedCharField, self).__init__(max_length=max_length, *args, **kwargs) def db_type(self, connection):
"""
限定生成数据库表的字段类型为char,长度为max_length指定的值
"""
return 'char(%s)' % self.max_length

2.在使用的时候,就继承类名

class Person (models.Model):

name = models.CharField(max_length=32) #默认的CharField字段是varchar类型

new_name = FixedCharField(max_length=64, default="张三") #而怎么设置他的类型为char类型,并且为自定义的长度,注意不是models.FixedCharField

def __str__(self):
return self.name

在数据库中可以看到,字段的类型为自定义的char类型长度

Django ORM 常用字段和参数

上一篇:Hibernate 系列 03 - 使用Hibernate完成持久化操作


下一篇:浅析z-index(覆盖顺序)和定位