Django_models类属性。

1.类属性

AutoField         #自增ID
BigAutoField      #大的自增,一个64位整数,保证适合1到9223372036854775807之间的数字。
BigIntegerField   #更大的自增,-9223372036854775808 to 9223372036854775807
BinaryField       #存储原始二进制数据的字段。它只支持字节分配
BooleanField     #布尔值,
CharField      #字符串
DateField         #e.g 2019-04-27
DateTimeField     #e.g 2019-04-27 17:53:21
DecimalField(max_digits=None, decimal_places=None)  # 设置了固定精度的十进制数:固定整数和小数位数
DurationField     #storing periods of time ,e.g [DD] [HH:[MM:]]ss[.uuuuuu]"
EmailField    #电子邮件,其实也是字符串
FileField         #存储文件
FloatField    #浮点数
ImageField        #从FileField继承所有属性和方法,但也验证上传的对象是有效的图像。
IntegerField    #整数
GenericIPAddressField #IP地址,支持ipv4和ipv6。
NullBooleanField      #类似于布尔值字段,但允许其中一个选项为NULL
PositiveIntegerField  #类似整数字段,但必须是正数或零(0)。取值范围为0到2147483647:正整数
PositiveSmallIntegerField #正小数,小数位只允许0到32767之间。
SlugField # slug是某物的短标签,只包含字母、数字、下划线或连字符。标签
SmallIntegerField  #小整数
TextField   #一个大的文本字段。
TimeField   #一段时间,在Python中用datetime表示。时间的实例。
URLField  #url
UUIDField   #用于存储通用唯一标识符的字段。使用Python的UUID类。

2.除了普通的表字段,针对外键也有映射

ForeignKey  # 外键关联
ManyToManyField  #多对多
 
OneToOneField  # 1对1

 3.类参数

null        #如果为真,Django将在数据库中将空值存储为NULL。默认是假的。
blank       #如果为真,则允许字段为空。默认是假的。
 
db_column   #要用于此字段的数据库列的名称。如果没有给出,Django将使用字段的名称。
db_index    #如果为真,将为该字段创建一个数据库索引。
default     #字段的默认值。它可以是一个值,也可以是一个可调用的对象。如果可调用,它将在每次创建新对象时被调用。
editable    # django admin中用
help_text   # django admin中庸
primary_key # 如果为真,则该字段是模型的主键。
unique      #如果为真,则此字段在整个表中必须是唯一的
unique_for_date    #将其设置为DateField或DateTimeField的名称,以要求该字段对于date字段的值是惟一的。例如,如果您的字段标题是unique_for_date="pub_date",那么Django将不允许输入具有相同标题和pub_date的两条记录。
 
unique_for_month   #与unique_for_date类似,但要求字段相对于月份是惟一的。
unique_for_year   #相对于年份是唯一的。
verbose_name    #一个人类可读的字段名。如果没有给出详细的名称,Django将使用字段的属性名自动创建它

 4.ForeignKey.on_delete

当一条记录关联的外键纪录被删除时,django 也会根据外键关联限制的配置来决定如何处理当前这条纪录。举例,如果你有个可以为null的外键关联,并且你想在本纪录关联的数据被删除时,把当前纪录的关联字段设为null,那就配置如下

account = models.ForeignKey("Account",on_delete=models.CASCADE)

这个on_delete就是决定在关联对象被删除时,如何处理当前纪录的,常用的参数如下:

  • CASCADE——级联删除。Django模拟了DELETE级联上的SQL约束的行为,并删除了包含外键的对象。
  • PROTECT——通过引发ProtectedError (django.db.IntegrityError的子类)来防止被引用对象的删除。
  • SET_NULL——设置外键为空;这只有在null为真时才有可能。
  • SET_DEFAULT——将外键设置为其默认值;必须为外键设置一个默认值。
原文地址:https://www.cnblogs.com/wangdianchao/p/12559675.html