|
|
|
|
from django.core.validators import MinValueValidator
|
|
|
|
|
from django.db import models
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Create your models here.
|
|
|
|
|
|
|
|
|
|
class Admin(models.Model):
|
|
|
|
|
""" 管理员 """
|
|
|
|
|
username = models.CharField(verbose_name="用户名", max_length=32)
|
|
|
|
|
password = models.CharField(verbose_name="密码", max_length=64)
|
|
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
|
return self.username
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Department(models.Model):
|
|
|
|
|
""" 部门表 """
|
|
|
|
|
title = models.CharField(verbose_name='标题', max_length=32)
|
|
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
|
return self.title
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserInfo(models.Model):
|
|
|
|
|
""" 员工表 """
|
|
|
|
|
name = models.CharField(verbose_name="姓名", max_length=16)
|
|
|
|
|
password = models.CharField(verbose_name="密码", max_length=64)
|
|
|
|
|
age = models.IntegerField(verbose_name="年龄", validators=[MinValueValidator(0, message="年龄不能为负数")])
|
|
|
|
|
account = models.DecimalField(verbose_name="工资", max_digits=10, decimal_places=2, default=0,
|
|
|
|
|
validators=[MinValueValidator(0, message="工资不能为负数")])
|
|
|
|
|
create_time = models.DateField(verbose_name="入职时间")
|
|
|
|
|
|
|
|
|
|
# 无约束
|
|
|
|
|
# depart_id = models.BigIntegerField(verbose_name="部门ID")
|
|
|
|
|
# 1.有约束
|
|
|
|
|
# - to,与那张表关联
|
|
|
|
|
# - to_field,表中的那一列关联
|
|
|
|
|
# 2.django自动
|
|
|
|
|
# - 写的depart
|
|
|
|
|
# - 生成数据列 depart_id
|
|
|
|
|
# 3.部门表被删除
|
|
|
|
|
# ### 3.1 级联删除
|
|
|
|
|
depart = models.ForeignKey(verbose_name='部门', to="Department", to_field="id", on_delete=models.CASCADE)
|
|
|
|
|
# ### 3.2 置空
|
|
|
|
|
# depart = models.ForeignKey(to="Department", to_field="id", null=True, blank=True, on_delete=models.SET_NULL)
|
|
|
|
|
|
|
|
|
|
# 在django中做的约束
|
|
|
|
|
gender_choices = (
|
|
|
|
|
(1, "男"),
|
|
|
|
|
(2, "女"),
|
|
|
|
|
)
|
|
|
|
|
gender = models.SmallIntegerField(verbose_name="性别", choices=gender_choices)
|