django的models的参数选项

字段类型控制:
首先导入 import django.db.models

  • AutoField:自动增长的IntegerField,通常不用指定,不指定时Django会自动创建属性名为id的自动增长属性。
  • BooleanField:布尔字段,值为True或False。
  • NullBooleanField:支持Null、True、False三种值。
  • CharField(max_length=字符长度):字符串。TextField:大文本字段,一般超过4000个字符时使用。
    • 参数max_length表示最大字符个数。
  • IntegerField:整数。
  • DecimalField(max_digits=None, decimal_places=None):十进制浮点数。FloatField:浮点数。
    • 参数max_digits表示总位数。
    • 参数decimal_places表示小数位数。
  • DateField[auto_now=False, auto_now_add=False]):日期。TimeField:时间,参数同DateField。
    • 参数auto_now表示每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为false。
    • 参数auto_now_add表示当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false。
    • 参数auto_now_add和auto_now是相互排斥的,组合将会发生错误。
  • DateTimeField:日期时间,参数同DateField。
  • FileField:上传文件字段。
  • ImageField:继承于FileField,对上传的内容进行校验,确保是有效的图片。

 

关系:
  1 一对多关系
    models.ForignKey() 外键约束
    定义在多类中
  2 多对多关系
    models.ManyToManyField()
    定义在哪一个都行

  3 一对一关系
    models.OntoOneField()
    定义在哪一个类都可以

 

选项


1. blank 选项

该选项是一个布尔值,为 True时,字段可以为空,为False时,字段为必填。CharField和TextField是用空字符串来存储空值的。

2. null 选项

该选项也是一个布尔值,为 True时,Django用Null来存储空值。日期型、时间型和数字型字段不接受空字符串。所以设置IntegerField,DateTimeField型字段为空时,需要将blank和null同时设置为True才行。

3. max_length 选项

设置CharField型字段的最大长度

4. choices 选项

例子:

class User(models.Model):
    SEX_CHOICES = (
    (1, '男'),
    (2, '女'),
    )

    name = models.CharField(max_length=25)
    sex = models.IntegerField(choices=SEX_CHOICES)

通过choices选项指定一个例子中格式的元组,可以在后台出现一个选择列表。详细介绍看官网Model Field Reference

5. default 选项

为字段设置一个默认值

6. verbose_name 选项

该字段会在admin后台显示名称

7. unique 选项

设置为True时,此字段在数据库中必须是唯一的。
除了ManyToManyField\OneToOneField和FileField 以外的其他字段类型都可以使用这个设置。

8. primary_key 选项

如果设置为True,则该字段成为Model的主键,django默认为自动生成一个主键id。

9. help_text 选项

会在form表单控件中显示help文本。

10. unique_for_date 选项

设置一个DateField和DateTimeField字段时,表示要求该字段相应的日期字段值是唯一的。
例如: 你有一个title 字段设置为unique_for_date=”pub_date”,那么Django将不允许记录具有相同的title和pub_date.

11. unique_for_month 选项

与 unique_for_date类似,只要求字段对月份是唯一的。

12. unique_for_year 选项

只对年份要求唯一。





猜你喜欢

转载自blog.csdn.net/weixin_41768978/article/details/80208200