zoukankan      html  css  js  c++  java
  • 商品结构表分析

    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)
       desc = 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)
    
  • 相关阅读:
    Java 窗口 绘制图形 #1
    支配树
    Tarjan算法
    Baby-step giant-step算法
    初等群论
    第七次java作业
    学习所用的开发环境
    第六次java作业
    第五次java作业
    第四次java作业
  • 原文地址:https://www.cnblogs.com/ihszg/p/13823380.html
Copyright © 2011-2022 走看看