Django模型Models类型

99封情书 提交于 2020-03-02 14:25:44

我也是刚开始接触Django,本文只尽量详细记载Django中常用的models模型类型,如有错误,请指正,欢迎提供各种建议,必虚心受教。

 

  • AutoField

自动增长的IntegerField,通常不用指定,不指定时Django会自动创建属性名为id的自增字段。

AutoField必需参数:无

 

  • BooleanField

布尔字段,值为True或False,默认为False。

BooleanField参考:

from django.db import models

class Test(models.Model):
    # 默认为False
    is_delete = models.BooleanField()
    # 默认设置为True
    is_delete = models.BooleanField(default=True)

 

  • CharField

字符串字段类型

CharField参考

from django.db import models

class Test(models.Model):
    # 必需参数:max_length
    # 定义CharField必需使用max_length指定字段长度
    user = models.CharField(max_length=30)

 

  • IntegerField

整数类型,安全值范围:[-2147483648----2147483647]

IntegerField参考:

from django.db import models

class Test(models.Model):
    money = models.IntegerField()

 

  • DecimalField

固定精度十进制数字,在 Python 中以十进制表示。它使用十进制验证器验证输入。

DecimalField参考:

from django.db import models

class Test(models.Model):
    #  max_digits:数字中允许的最大位数,此数字必须大于等于decimal_places
    #  decimal_places:存储的小数位数。
    money = models.DecimalField(max_digits=10,decimal_places=2)

 

  • DateField

日期类型

DateField参考:

from django.db import models

class Test(models.Model):
    #  auto_now_add:在首次创建对象时,自动将字段设置为现在。可用于创建时间戳。
    create_date = models.DateField(auto_now_add=True)
    #  auto_now:每次保存对象时,自动将字段设置为现在。可用于"上次修改"时间戳。
    modify_date = models.DateField(auto_now=True,auto_now_add=True)

 

  • DateTimeField

日期和时间类型

DateTimeField参考:

from django.db import models

class Test(models.Model):
    #  auto_now_add:在首次创建对象时,自动将字段设置为现在。可用于创建时间戳。
    create_date = models.DateTimeField(auto_now_add=True)
    #  auto_now:每次保存对象时,自动将字段设置为现在。可用于"上次修改"时间戳。
    modify_date = models.DateTimeField(auto_now=True,auto_now_add=True)

 

  • FileField

文件上传路径

from django.db import models

class Test(models.Model):
    # 文件会保存在 MEDIA_ROOT/uploads
    upload = models.FileField(upload_to='uploads/')
    # 文件保存在 MEDIA_ROOT/uploads/2015/01/30
    upload = models.FileField(upload_to='uploads/%Y/%m/%d/')

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!