标签:person har class __str__ prim 格式 必须 img 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类型长度
标签:person har class __str__ prim 格式 必须 img orm
原文地址:https://www.cnblogs.com/sunny7/p/10351147.html