创建Model(2)-model字段类型介绍

models.CharField

  • for character fields
  • 必填参数max_length
  • 可选参数choices

models.DateTimeField

  • for datetimes
  • create_date = models.DateTimeField(auto_now_add=True) 用于新创建时填入当前时间
  • update_date = models.DateTimeField(auto_now=True) 用于更新时填入当前时间

models.TextField

  • 用于长文本

models.FileField(upload_to='uploads/%Y/%m/%d')

  • 用于上传文件,文件将保存在'uploads/%Y/%m/%d'目录下面

models.ManyToManyField

  • 用于多对多关系
    举例:此处【Task】与【Student】是多对多关系,即一个任务可以关联多个学生,一个学生也可以完成多个任务。
class Task(models.Model):
    ......
    member = models.ManyToManyField(
        Student,
    )
    ......

models.ForeignKey

  • 用于多对一关系
    举例:当前对象【Teacher】与【WorkRoom】是多对一关系,即一个工作室里可以有多名教师,但是一名教师只能属于一个工作室。
class Teacher(models.Model):
    work_room = models.ForeignKey(
        WorkRoom,
        default=0,
        on_delete=models.CASCADE,
        verbose_name="work room",
    )

models.OneToOneField

  • 用于一对一关系
    举例:当前对象【Student】与【User】对象是一对一关系。此处为使用Django自带User对象的验证功能,而与User进行一对一对应。
class Student(models.Model):
    ......
    user = models.OneToOneField(
        User,
        on_delete=models.CASCADE,
        verbose_name="login user",
        default=0,
    )
    ......

你可能感兴趣的:(创建Model(2)-model字段类型介绍)