parent
2f9ae565ee
commit
0dc2c7cb8a
33 changed files with 92 additions and 3 deletions
@ -1,3 +0,0 @@ |
|||||||
from django.db import models |
|
||||||
|
|
||||||
# Create your models here. |
|
@ -0,0 +1,75 @@ |
|||||||
|
from django.db import models |
||||||
|
from common.base_model import BaseModel |
||||||
|
from datetime import datetime |
||||||
|
|
||||||
|
from ckeditor_uploader.fields import RichTextUploadingField |
||||||
|
|
||||||
|
|
||||||
|
# Create your models here. |
||||||
|
class GoodsCategory(BaseModel): |
||||||
|
""" |
||||||
|
商品分类 |
||||||
|
""" |
||||||
|
id = models.AutoField(primary_key=True) |
||||||
|
name = models.CharField(verbose_name='分类名称', max_length=50, default='') |
||||||
|
parent = models.ForeignKey(verbose_name='父类', to="self", null=True, blank=True, on_delete=models.DO_NOTHING, |
||||||
|
related_name='sub_cat') |
||||||
|
logo = models.ImageField(verbose_name='分类logo图片', upload_to='upload/cate_img') |
||||||
|
is_nav = models.BooleanField(verbose_name='是否显示在导航栏', default=False) |
||||||
|
sort = models.IntegerField(verbose_name='排序') |
||||||
|
|
||||||
|
def __str__(self): |
||||||
|
return self.name |
||||||
|
|
||||||
|
class Meta: |
||||||
|
verbose_name = '商品分类' |
||||||
|
verbose_name_plural = '商品分类' |
||||||
|
db_table = 'd_goods_category' |
||||||
|
|
||||||
|
|
||||||
|
class Goods(models.Model): |
||||||
|
""" |
||||||
|
商品信息 |
||||||
|
""" |
||||||
|
STATUS = ( |
||||||
|
(0, '正常'), |
||||||
|
(1, '下架') |
||||||
|
) |
||||||
|
name = models.CharField(verbose_name='商品名称', max_length=50, default='') |
||||||
|
category = models.ForeignKey(verbose_name='商品分类', to=GoodsCategory, on_delete=models.DO_NOTHING, blank=True, |
||||||
|
null=True) |
||||||
|
market_price = models.DecimalField(verbose_name='市场价', max_digits=8, decimal_places=2, default=0) |
||||||
|
price = models.DecimalField(verbose_name='实际价格', max_digits=8, decimal_places=2, default=0) |
||||||
|
unit = models.CharField(verbose_name='单位', max_length=10, blank=True, null=True) |
||||||
|
click_num = models.IntegerField(verbose_name='点击数', default=0) |
||||||
|
amount = models.IntegerField(verbose_name='销售量', default=0) |
||||||
|
stock_num = models.IntegerField(verbose_name='库存量', default=0) |
||||||
|
fav_num = models.IntegerField(verbose_name='收藏量', default=0) |
||||||
|
goods_desc = RichTextUploadingField(verbose_name='商品详情', default='') |
||||||
|
status = models.IntegerField(verbose_name='商品状态', default=0, choices=STATUS) |
||||||
|
main_img = models.ImageField(verbose_name='商品主图', upload_to='upload/goods_img', blank=True, null=True) |
||||||
|
is_recommend = models.BooleanField(verbose_name='是否推荐', default=False) |
||||||
|
user = models.ForeignKey(verbose_name='用户', to='', on_delete=models.DO_NOTHING, blank=True, null=True) |
||||||
|
create_datetime = models.DateTimeField(verbose_name='创建时间', default=datetime.now()) |
||||||
|
|
||||||
|
def __str__(self): |
||||||
|
return self.name |
||||||
|
|
||||||
|
class Meta: |
||||||
|
verbose_name = '商品信息' |
||||||
|
verbose_name_plural = '商品信息' |
||||||
|
db_table = 'd_goods' |
||||||
|
|
||||||
|
|
||||||
|
class Slide(BaseModel): |
||||||
|
""" |
||||||
|
首页轮播图 |
||||||
|
""" |
||||||
|
goods = models.ForeignKey(verbose_name='商品', to=Goods, on_delete=models.DO_NOTHING) |
||||||
|
images = models.ImageField(verbose_name='轮播图片', upload_to='upload/slide_img') |
||||||
|
sort = models.IntegerField(verbose_name='排序', default=0) |
||||||
|
|
||||||
|
class Meta: |
||||||
|
verbose_name = '首页轮播' |
||||||
|
verbose_name_plural = '首页轮播' |
||||||
|
db_table = 'd_slide' |
@ -0,0 +1,11 @@ |
|||||||
|
from django.db import models |
||||||
|
|
||||||
|
|
||||||
|
class BaseModel(models.Model): |
||||||
|
"""创建数据模型基类""" |
||||||
|
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') |
||||||
|
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') |
||||||
|
|
||||||
|
class Meta: |
||||||
|
# 设置为抽象基类 |
||||||
|
abstract = True |
Binary file not shown.
Loading…
Reference in new issue