本文共 1952 字,大约阅读时间需要 6 分钟。
从今天起开始正式记录我用django2.1-mysql,完成部分礼品仓库管理系统的功能
在这个场景中,我设计了三个模型:Present(礼品),Depot(仓库),Employee(员工)具体的模型定义如下:
class Present(models.Model): name = models.CharField(max_length=200) #礼品名 on_date = models.DateTimeField() #上架日期 store_num = models.IntegerField() #上架数量 status = models.IntegerField(default=0) #0代表审核, 1代表上架, 2代表上架 cost = models.DecimalField(max_digits=11, decimal_places=2) #礼品价格 hot = models.IntegerField(default=0) #热度 off = models.IntegerField(default=0) #0代表不打折, 1代表打折 off_cost = models.DecimalField(max_digits=3, decimal_places=2, null=True) #折扣 url = models.CharField(max_length=200, null=True) #图片 pdepot = models.ForeignKey( Depot, on_delete=models.CASCADE ) #礼品所在仓库 class Meta(): db_table = 'Present'class Depot(models.Model): name = models.CharField(max_length=200) #仓库名 address = models.CharField(max_length=200) #仓库地址 manager = models.ForeignKey( Employee, on_delete=models.SET_NULL, blank=True, null=True ) #仓库管理员 class Meta(): db_table = 'Depot'class Employee(models.Model): name = models.CharField(max_length=200) # 员工姓名 password = models.CharField(max_length=200) #员工密码 order = models.IntegerField(choices=((0, '无权限'), (1, '普通员工:查看权限,上架下架'), (2, '仓库管理员:增删改'),), default=0) #员工权限 posit = models.CharField(max_length=200) #员工职位 phone = models.CharField(max_length=200) #员工电话 class Meta(): db_table = 'Employee'
其中,class Meta() 是为你所设计的模型自定义表名,不自己定义也没有关系,不定义的话,你所设计的表名如APPwarehouse下的Present表:warehouse_present,但是,你的模型名还是Present
py manage.py makemigrationspy manage.py migrate
完成以上步骤后,在你绑定的mysql数据库中刷新,就能够看到你所建立的表了,至于模型中的字段后的约束条件什么意思还请自行百度。但请注意,Django中定义的所有字段默认都是不可为空的,如允许为空则需加上:null=True
https://github.com/easonyes/djiango_study_1/blob/master/warehouse/models.py
转载地址:http://uaprn.baihongyu.com/