zl程序教程

您现在的位置是:首页 >  后端

当前栏目

3.Django大型电商项目之模型的创建与数据库迁移

django数据库迁移项目 创建 模型 电商 大型
2023-09-27 14:23:04 时间

1.商品模块之子应用搭建

创建Django子应用

 python .\manage.py startapp goodsapp

配置根settings

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'goodsapp',
]

2.商品模块之模型类创建

在这里插入图片描述

创建模型model.py

from django.db import models

# 商品分类
class Category(models.Model):
    cname = models.CharField(max_length=10, verbose_name='商品分类名称')

    # 通过此函数可以直接查看商品名称
    def __str__(self) -> str:
        return self.cname

# 商品表
class Goods(models.Model):
    gname = models.CharField(max_length=100, verbose_name='商品名称')
    gdesc = models.CharField(max_length=100, verbose_name='商品描述')
    # DecimalFiled:数字字段,可以设置整数位与小数位
    oldprice = models.DecimalField(max_digits=5, decimal_places=2, verbose_name='商品原价')
    price = models.DecimalField(max_digits=5, decimal_places=2, verbose_name='商品现价')
    # 创建外键,关联商品分类表
    category = models.ForeignKey(Category, on_delete=models.CASCADE)

    def __str__(self) -> str:
        return self.gname

# 商品详情名称名称表
class GoodsDetailName(models.Model):
    gdname = models.CharField(max_length=30, verbose_name='商品详情名称')

    def __str__(self) -> str:
        return self.gdname

# 商品详情表
class GoodsDetail(models.Model):
    # 默认是保存到media文件夹中(settings配置),这里就直接保存,所以给个空
    gdurl = models.ImageField(verbose_name='详细图片路径', upload_to='')
    detailname = models.ForeignKey(GoodsDetailName, on_delete=models.CASCADE, verbose_name='商品详情名称')
    goods = models.ForeignKey(Goods, on_delete=models.CASCADE)

# 商品尺寸
class Size(models.Model):
    sname = models.CharField(verbose_name='商品尺寸名称',max_length=10)

# 商品颜色表
class Color(models.Model):
    colorname = models.CharField(max_length=10, verbose_name='颜色名称')
    color = models.ImageField(verbose_name='颜色保存路径',upload_to='color/')

# 商品库存
class Inventory(models.Model):
    count = models.PositiveBigIntegerField(verbose_name='库存数量')
    size = models.ForeignKey(Size, on_delete=models.CASCADE, verbose_name='所属尺寸')
    color = models.ForeignKey(Color, on_delete=models.CASCADE, verbose_name='所属颜色')
    goods = models.ForeignKey(Goods, on_delete=models.CASCADE, verbose_name='所属商品')

迁移数据库

python .\manage.py makemigrations
python .\manage.py migrate

在这里插入图片描述