from django.db import models from django.core.exceptions import ValidationError def age_validator(value): if value < 0: raise ValidationError('年龄错误太小了') if value > 150: raise ValidationError('太老了,还是人吗?') class BaseUserInfo(models.Model): id = models.AutoField(verbose_name='编号', primary_key=True) username = models.CharField(verbose_name='用户名', max_length=30) password = models.CharField(verbose_name='密码', max_length=20) status = models.CharField(verbose_name='状态', max_length=1) createdate = models.DateField(verbose_name='创建日期', auto_now_add=True, db_column='createDate') def __str__(self): return str(self.id) + '-' + self.username # class Meta: # managed = False # verbose_name = '人员基本信息' # db_table = 'UserBaseInfo' class DepartInfo(models.Model): id = models.AutoField(verbose_name='部门编号', primary_key=True) departname = models.CharField(verbose_name='部门名称', max_length=30) createdate = models.DateField(verbose_name='创建日期', db_column='createDate', auto_now_add=True) class UserExtendInfo(models.Model): id = models.AutoField(verbose_name='扩展编号', primary_key=True) username = models.CharField(verbose_name='用户名', max_length=30) turename = models.CharField(verbose_name='真实姓名', max_length=30) sex = models.IntegerField(verbose_name='性别') age = models.IntegerField(verbose_name='年龄', validators=[age_validator]) department = models.CharField(verbose_name='部门', max_length=20) salary = models.DecimalField(verbose_name='薪水', max_digits=8, decimal_places=2) status = models.CharField(verbose_name='状态', max_length=1, db_comment='1 有效, 0 无效') createdate = models.DateField(verbose_name='创建日期', db_column='createDate', auto_now_add=True) lastupdatetime = models.DateTimeField(verbose_name='最后更新时间', db_column='lastUpdateTime', auto_now=True) memo = models.TextField(verbose_name='备注', blank=True, null=True) user = models.OneToOneField(BaseUserInfo, on_delete=models.CASCADE) depart = models.ForeignKey(DepartInfo, default="", on_delete=models.DO_NOTHING) class SkillInfo(models.Model): id = models.AutoField(verbose_name='技能编码', primary_key=True) skillname = models.CharField(verbose_name='特长', max_length=30) createdate = models.DateField(verbose_name='创建时间', db_column='createDate', auto_now_add=True) user = models.ManyToManyField(UserExtendInfo, db_table='user_skill')