|
|
from django.db import models
|
|
|
|
|
|
genders = [
|
|
|
('m', '男'),
|
|
|
('f', '女')
|
|
|
]
|
|
|
|
|
|
|
|
|
# 添加学生模型
|
|
|
class Student(models.Model):
|
|
|
name = models.CharField(max_length=50, verbose_name="姓名")
|
|
|
gender = models.CharField(max_length=10, choices=genders, default='m', verbose_name="性别")
|
|
|
birthday = models.DateField(verbose_name='生日')
|
|
|
email = models.EmailField(verbose_name="邮箱")
|
|
|
info = models.CharField(max_length=255, verbose_name='个人简介', help_text='一句话概括自己,不超过250字')
|
|
|
grade = models.CharField(max_length=4, verbose_name='年级')
|
|
|
number = models.CharField(max_length=20, verbose_name='级内学号')
|
|
|
password = models.CharField(max_length=30, verbose_name='密码')
|
|
|
|
|
|
class Meta:
|
|
|
constraints = [
|
|
|
models.UniqueConstraint(fields=['grade', 'number'], name='student_id')
|
|
|
]
|
|
|
|
|
|
def get_id(self):
|
|
|
return "%s%s" % (self.grade, self.number)
|
|
|
|
|
|
def __str__(self):
|
|
|
return "%s (%s)" % (self.get_id(), self.name)
|
|
|
|
|
|
|
|
|
# 添加老师模型
|
|
|
class Teacher(models.Model):
|
|
|
name = models.CharField(max_length=50, verbose_name="姓名")
|
|
|
gender = models.CharField(max_length=10, choices=genders, default='m', verbose_name="性别")
|
|
|
birthday = models.DateField(verbose_name='生日')
|
|
|
email = models.EmailField(verbose_name='邮箱')
|
|
|
info = models.CharField(max_length=255, verbose_name='教师简介', help_text='不要超过250字')
|
|
|
|
|
|
department_no = models.CharField(max_length=3, verbose_name='院系号')
|
|
|
number = models.CharField(max_length=7, verbose_name='院内编号')
|
|
|
password = models.CharField(max_length=30, verbose_name='密码')
|
|
|
|
|
|
class Meta:
|
|
|
constraints = [
|
|
|
models.UniqueConstraint(fields=['department_no', 'number'], name='teacher_id')
|
|
|
]
|
|
|
# python manage.py makemigrations 生成空的database:db.sqlite3
|
|
|
# python manage.py migrate 更新到数据库文件
|
|
|
def get_id(self):
|
|
|
return "%s%s" % (self.department_no, self.number)
|
|
|
|
|
|
def __str__(self):
|
|
|
return "%s (%s)" % (self.get_id(), self.name)
|