django rest framework 学习笔记-实战商城3

 01用户模块模型定义_哔哩哔哩_bilibili  本博客借鉴至大佬的视频学习笔记

用户模块及商品数据表结构设计

from ckeditor.fields import RichTextField  # pip install django-ckeditor
from django.db import models

# Create your models here.
# from wx.richtext import RichTextField

from common.db import BaseModel


class GoodsGroup(BaseModel):
    """商品分类"""
    name = models.CharField(verbose_name="分类名称", help_text="分类名称", max_length=15,blank=True,null=True)
    image = models.CharField(verbose_name="图片链接", help_text="图片链接", max_length=200, blank=True, null=True)
    status = models.BooleanField(verbose_name="是否启用", help_text="是否启用", default=False,blank=True,null=True)

    class Meta:
        db_table = 'goods_group'
        verbose_name = "商品分类表"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name


class Goods(BaseModel):
    """商品"""
    group = models.ForeignKey('GoodsGroup', verbose_name="分类", help_text="分类", max_length=15, on_delete=models.CASCADE)
    image = models.CharField(verbose_name="图片链接", help_text="图片链接", max_length=200, blank=True, null=True)
    title = models.CharField(verbose_name="标题", help_text="标题", max_length=20, blank=True,null=True)
    desc = models.CharField(verbose_name="商品描述", help_text="商品描述", max_length=200, blank=True,null=True)
    price = models.DecimalField(verbose_name="商品价格", help_text="商品价格", max_digits=10, decimal_places=2, blank=True,null=True)
    cover = models.ImageField(verbose_name="封面图链接", help_text="封面图链接", max_length=200, blank=True,null=True)
    stock = models.IntegerField(verbose_name="库存", help_text="库存", blank=True, null=True, default=1)
    sales = models.IntegerField(verbose_name="销量", help_text="销量", blank=True, null=True, default=0)
    is_on = models.BooleanField(verbose_name="是否上架", help_text="是否上架", blank=True, null=True, default=False)
    recommend = models.BooleanField(verbose_name="是否推荐", help_text="是否推荐", blank=True, null=True, default=False)

    class Meta:
        db_table = 'goods'
        verbose_name = '商品表'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.title


class Detail(BaseModel):
    """商品详情"""
    goods = models.OneToOneField('Goods', verbose_name="商品", on_delete=models.CASCADE, max_length=200)
    producer = models.CharField(verbose_name='厂商', help_text='厂商', max_length=200, blank=True,null=True)
    norms = models.CharField(verbose_name='规格', help_text='规格', max_length=200, blank=True,null=True)
    details = RichTextField(verbose_name='商品详情', help_text='商品详情', max_length=200,blank=True,null=True)

    class Meta:
        db_table = 'details'
        verbose_name = '详情'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.goods


class GoodsBanner(BaseModel):
    """商品轮播图"""
    title = models.CharField(verbose_name='轮播图名称', help_text='轮播图名称', max_length=20, blank=True)
    image = models.ImageField(verbose_name='轮播图链接', help_text='轮播图链接', max_length=200, blank=True)
    # url = models.CharField(verbose_name='跳转的地址',help_text='跳转的地址',max_length=200,blank=True)
    status = models.BooleanField(verbose_name='是否启用', help_text='是否启用', default=False,blank=True,null=True)
    seq = models.IntegerField(verbose_name='顺序', help_text='顺序', default=1, blank=True,null=True)

    class Meta:
        db_table = 'banner'
        verbose_name = '首页商品轮播'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.title


class Collect(models.Model):
    """商品收藏"""
    user = models.ForeignKey('users.User', help_text='用户ID', verbose_name='用户ID', on_delete=models.CASCADE,blank=True,null=True)
    goods = models.ForeignKey('goods.Goods', help_text="商品ID", verbose_name="商品ID", on_delete=models.CASCADE,blank=True,null=True)

    class Meta:
        db_table = 'collect'
        verbose_name = "收藏商品"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.goods

Django自带admin配置

from django.contrib import admin
from .models import GoodsGroup,Goods,Detail,GoodsBanner,Collect
# Register your models here.

@admin.register(GoodsGroup)
class GoodsGroupAdmin(admin.ModelAdmin):
    list_display = ['name','status']

@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):
    list_display = ['title','group','price','stock','sales','is_on']

@admin.register(Detail)
class DetailGroupAdmin(admin.ModelAdmin):
    list_display = ['goods', 'producer','norms']

@admin.register(GoodsBanner)
class GoodsBannerAdmin(admin.ModelAdmin):
    list_display = ['title', 'status']

@admin.register(Collect)
class CollectAdmin(admin.ModelAdmin):
    list_display = ['user', 'goods']

2024/2/23 更新中。。。

相关推荐

  1. django rest framework 学习笔记-实战商城3

    2024-02-23 09:32:01       35 阅读
  2. DjangoRestFramework(drf实现五个接口)

    2024-02-23 09:32:01       32 阅读
  3. DjangoRestFramework概括

    2024-02-23 09:32:01       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-23 09:32:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-23 09:32:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-23 09:32:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-23 09:32:01       20 阅读

热门阅读

  1. 在jar里限制指定的包名才可调用(白名单)。

    2024-02-23 09:32:01       32 阅读
  2. 汽车信息安全--S32K3的HSE如何与App Core通信(1)?

    2024-02-23 09:32:01       31 阅读
  3. CentOS 7.x 使用 RPM 包安装 Gitlab

    2024-02-23 09:32:01       26 阅读
  4. 删除有序数组中的重复项

    2024-02-23 09:32:01       34 阅读
  5. proguard 混淆jar内容

    2024-02-23 09:32:01       32 阅读
  6. 机器学习是什么

    2024-02-23 09:32:01       30 阅读
  7. Python 进阶语法:enum(枚举)

    2024-02-23 09:32:01       27 阅读
  8. 4.Snapkit的使用

    2024-02-23 09:32:01       24 阅读
  9. Hadoop-Yarn-NodeManager是如何启动容器的

    2024-02-23 09:32:01       31 阅读
  10. -bash: /root/.ssh/authorized_keys: Read-only file system

    2024-02-23 09:32:01       26 阅读