Django模型Model的定义
Posted xcool
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django模型Model的定义相关的知识,希望对你有一定的参考价值。
定义模型:在
models.py
文件中进行定义,一个数据表就是一个模型,如果数据库有三张表分别为student,info,grade,含义分别为,学生表,学生信息,班级信息,三张表之间有关联,学生与班级之间为1对多关系,学生与学生信息为1对1关系,模型中定义如下。定义student模型
class Grage(models.Model):
g_name = models.CharField(max_length=10,unique=True) # 最大长度为10,班级名唯一
class Meta:
db_table = ‘grade‘ # 指定表名为grade,如果不指定,默认为应用名_grade
- 定义student模型与班级1对多关系
class Student(models.Model):
s_id = models.IntegerField(unique=True) # 定义学生学号,且学号唯一
s_name = models.CharField(max_length=20) # 定义学生姓名,最大长度为20
s_gender = models.BooleanField(default =1) # 定义学生性别,布尔类型,默认为1,True
s_age = models.IntegerField() # 定义学生年龄
create_time = models.DateTimeField(auto_now_add=True,null=True) # 定义创建时间,auto_now_add表示以当前时间创建,不会再改变,null=True表示默认为空,不写报错
update_time = models.DateTimeField(auto_now=True,null=True) # 定义修改时间,auto_now表示每一次修改,字段里的值就是当此修改的时间
chinese = models.DecimalField(decimal_places=1,max_digits=4,null=True) # 定义语文成绩,decimal_places表示1位小数,max_digits=4表示最大4位有效,如123.5,允许为空
math = models.DecimalField(decimal_places=1,max_digits=4,null=True) # 定义数学成绩
grade = models.Foreginkey(Grade,null=True) # 定义外键约束,一个班级对应多个学生
info = models.OneToOneField(Info,null=True) # 定义1对1关系,学生与学生信息
class Meta:
db_table = ‘student‘ # 指定表名为student
- 定义info模型与学生1对1关系
class Info(models.Model):
phone = models.CharField(max_length=10,null=True) # 定义手机号码,最大为11位
address = models.CharField(max_length=50,null=True) # 定义地址,最大位50位
class Meta:
db_table = ‘info‘ # 指定表名
以上是关于Django模型Model的定义的主要内容,如果未能解决你的问题,请参考以下文章