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,
)
......