商品模块表结构分析

1.表结构分析

1.1 商品模块表结构分析

from django.db import models 
from utils.MyBaseModel import Base 
class Goods(Base): 
	GOODS_TYPE = ( 
		('1', 'Vip'), 
		('2', 'Course') 
	)
	CHANNEL_TYPE = ( 
		('1', '普通'), 
		('2', '促销') 
	)
	course = models.ForeignKey('course.Course', on_delete=models.PROTECT) 
	goods_type = models.CharField('商品种类', choices=GOODS_TYPE, max_length=8) 
	product_id = models.CharField('产品id', max_length=8) 
	title = models.CharField('商品名称', max_length=24) 
	price = models.DecimalField('商品价格', max_digits=8, decimal_places=2) 
	channel_type = models.CharField('购买渠道', choices=CHANNEL_TYPE, max_length=8) 
	period = models.IntegerField('有效期', default=365) 
	is_launched = models.BooleanField('是否上架', default=True) 

	class Meta: 
		db_table = 'tb_goods' 
		
	def __str__(self): 
		return self.title 
class Orders(Base): 
	PAY_METHOD = ( 
		(1, "支付宝"), 
	)
	ORDER_STATUS = ( 
		(1, "待支付"), 
		(2, "已支付"), 
		(3, "已取消"), 
	)
	user = models.ForeignKey('user.User', on_delete=models.PROTECT, verbose_name="下单用户") 
	goods = models.ForeignKey(Goods, on_delete=models.PROTECT) 
	order_id = models.CharField('订单号', max_length=24) 
	trade_no = models.CharField('支付宝订单号', max_length=32, null=True) # 28位 
	pay_time = models.DateTimeField('支付时间', null=True) 
	pay_method = models.CharField('支付方式', choices=PAY_METHOD, default=1, max_length=8) 
	status = models.CharField('支付状态', choices=ORDER_STATUS, default=1, max_length=8) 
	total_amount = models.DecimalField(max_digits=10, decimal_places=2, verbose_name="商品总金额")
	class Meta: 
		db_table = 'tb_orders' 
	def __str__(self): 
		return self.order_id

1.2 course/models.py 中添加用户购买课程

class UserCourse(Base): 
	""" 
	用户购买的课程 
	""" 
	user = models.ForeignKey('user.User', on_delete=models.CASCADE, related_name='paycourse') 
	course = models.ForeignKey('course.Course', on_delete=models.CASCADE, related_name='payuser') 
	class Meta: 
		db_table = 'tb_usercourse' 
	def __str__(self): 
		return "用户:%s, 课程:%s" % (self.user.username, self.course.title)

1.3 user/models.py 添加VIP表并添加用户关联

from django.db import models 
from utils.MyBaseModel import Base 
# 创建Vip表,并和用户进行关联 
class Vip(Base): 
	vip_choise = ( 
		('0', '普通用户'), 
		('1', '普通会员'), 
		('2', '高级会员'), 
	)
	title = models.CharField('vip名称', max_length=16) 
	vip_type = models.CharField('Vip种类',choices=vip_choise ,max_length=4) d
	esc = models.CharField('vip描述',max_length=255) 
	period = models.IntegerField('有效期', default=365) 
	class Meta: 
		db_table = 'tb_vip' 
	def __str__(self): 
		return self.title 
class User(AbstractUser): 
	phone = models.CharField('手机号',max_length=20) 
	img = models.ImageField(upload_to='user',null=True) 
	nick_name = models.CharField('昵称',max_length=20) 
	address = models.CharField('地址',max_length=255) 
	
	vip = models.ForeignKey(Vip, on_delete=models.SET_NULL, default=None, null=True)
	vip_expiration = models.DateField('vip到期时间', blank=True, default=None, null=True) 
	
	class Meta: 
		db_table = 'tb_user'

2.admin.py中注册

2.1 goods/admin.py中注册

from django.contrib import admin 
from . import models 
# Register your models here. 
admin.site.register(models.Goods) 
admin.site.register(models.GoodsCourse) 
admin.site.register(models.Orders)

2.2 user/admin.py中注册

from django.contrib import admin 
from user import models 
admin.site.register(models.User) 
admin.site.register(models.Vip)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值