3.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
相关文章
- DJANGO ADMIN 一些有用的设置(转)
- Django 浏览器打开警告Not Found: /favicon.ico (转)
- Python 实现抽象类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)
- 号称简明实用的Django上手教程
- py3 与 Django 连接数据库: No module named 'MySQLdb'
- 185.基于Django的富文本编辑器安装与使用
- 137.Django中的DebugToolBar调试工具栏介绍、配置、使用
- 04.完成Django的第一个请求
- Django 操作Mysql数据库
- Django 实战 之 搭项目(正在更新)
- The Definitive Guide To Django 2 学习笔记(九) 第五章 模型 (一)数据库访问
- Django 提交 form 表单(使用sqlite3保存数据)
- Django 视图和模板1.4
- Error loading MySQLdb module: No module named 'MySQLdb'----------- django成功连接mysql数据库的方法
- Django - 解决页面显示的时间和数据库中存储的时间不一致的问题
- Django 数据库查询
- Django - 自定义数据库中的表名