美文网首页
新建Django +vue 项目 二

新建Django +vue 项目 二

作者: whong736 | 来源:发表于2018-12-11 16:48 被阅读62次

    10.编写Good model

    image.png
    from django.db import models
    from datetime import datetime
    from DjangoUeditor.models import UEditorField
    
    # Create your models here.
    
    class GoodCategory(models.Model):
        """
         商品类别
         """
        CATEGORY_TYPE = (
            (1, "一级类目"),
            (2, "二级类目"),
            (3, "三级类目"),
        )
    
        name = models.CharField(default="", max_length=30, verbose_name="类别名", help_text="类别名")
        code = models.CharField(default="", max_length=30, verbose_name="类别code", help_text="类别code")
        desc = models.TextField(default="", verbose_name="类别描述", help_text="类别描述")
        category_type = models.IntegerField(choices=CATEGORY_TYPE, verbose_name="类目级别", help_text="类目级别")
        parent_category = models.ForeignKey("self", null=True, blank=True, verbose_name="父类目级别", help_text="父目录",
                                            related_name="sub_cat")
        is_tab = models.BooleanField(default=False, verbose_name="是否导航", help_text="是否导航")
        add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
    
        class Meta:
            verbose_name = "商品类别"
            verbose_name_plural = verbose_name
    
        def __str__(self):
            return self.name
    
    
    class GoodsCategoryBrand(models.Model):
        """
        品牌名
        """
        category = models.ForeignKey(GoodsCategory, related_name='brands', null=True, blank=True, verbose_name="商品类目")
        name = models.CharField(default="", max_length=30, verbose_name="品牌名", help_text="品牌名")
        desc = models.TextField(default="", max_length=200, verbose_name="品牌描述", help_text="品牌描述")
        image = models.ImageField(max_length=200, upload_to="brands/")
        add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
    
        class Meta:
            verbose_name = "品牌"
            verbose_name_plural = verbose_name
            db_table = "goods_goodsbrand"
    
        def __str__(self):
            return self.name
    
    
    class Goods(models.Model):
        """
        商品
        """
        category = models.ForeignKey(GoodsCategory, verbose_name="商品类目")
        goods_sn = models.CharField(max_length=50, default="", verbose_name="商品唯一货号")
        name = models.CharField(max_length=100, verbose_name="商品名")
        click_num = models.IntegerField(default=0, verbose_name="点击数")
        sold_num = models.IntegerField(default=0, verbose_name="商品销售量")
        fav_num = models.IntegerField(default=0, verbose_name="收藏数")
        goods_num = models.IntegerField(default=0, verbose_name="库存数")
        market_price = models.FloatField(default=0, verbose_name="市场价格")
        shop_price = models.FloatField(default=0, verbose_name="本店价格")
        goods_brief = models.TextField(max_length=500, verbose_name="商品简短描述")
        goods_desc = UEditorField(verbose_name=u"内容", imagePath="goods/images/", width=1000, height=300,
                                  filePath="goods/files/", default='')
        ship_free = models.BooleanField(default=True, verbose_name="是否承担运费")
        goods_front_image = models.ImageField(upload_to="goods/images/", null=True, blank=True, verbose_name="封面图")
        is_new = models.BooleanField(default=False, verbose_name="是否新品")
        is_hot = models.BooleanField(default=False, verbose_name="是否热销")
        add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
    
        class Meta:
            verbose_name = '商品'
            verbose_name_plural = verbose_name
    
        def __str__(self):
            return self.name
    
    
    class IndexAd(models.Model):
        category = models.ForeignKey(GoodsCategory, related_name='category', verbose_name="商品类目")
        goods = models.ForeignKey(Goods, related_name='goods')
    
        class Meta:
            verbose_name = '首页商品类别广告'
            verbose_name_plural = verbose_name
    
        def __str__(self):
            return self.goods.name
    
    
    class GoodsImage(models.Model):
        """
        商品轮播图
        """
        goods = models.ForeignKey(Goods, verbose_name="商品", related_name="images")
        image = models.ImageField(upload_to="", verbose_name="图片", null=True, blank=True)
        add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
    
        class Meta:
            verbose_name = '商品图片'
            verbose_name_plural = verbose_name
    
        def __str__(self):
            return self.goods.name
    
    
    class Banner(models.Model):
        """
        轮播的商品
        """
        goods = models.ForeignKey(Goods, verbose_name="商品")
        image = models.ImageField(upload_to='banner', verbose_name="轮播图片")
        index = models.IntegerField(default=0, verbose_name="轮播顺序")
        add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
    
        class Meta:
            verbose_name = '轮播商品'
            verbose_name_plural = verbose_name
    
        def __str__(self):
            return self.goods.name
    
    
    class HotSearchWords(models.Model):
        """
        热搜词
        """
        keywords = models.CharField(default="", max_length=20, verbose_name="热搜词")
        index = models.IntegerField(default=0, verbose_name="排序")
        add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
    
        class Meta:
            verbose_name = '热搜词'
            verbose_name_plural = verbose_name
    
        def __str__(self):
            return self.keywords
    
    

    from datetime import datetime

    from django.db import models
    from django.contrib.auth import get_user_model

    from goods.models import Goods

    Create your models here.

    User = get_user_model()

    class UserFav(models.Model):
    """
    用户收藏
    """
    user = models.ForeignKey(User, verbose_name="用户")
    goods = models.ForeignKey(Goods, verbose_name="商品", help_text="商品id")
    add_time = models.DateTimeField(default=datetime.now, verbose_name=u"添加时间")

    class Meta:
        verbose_name = '用户收藏'
        verbose_name_plural = verbose_name
        unique_together = ("user", "goods")
    
    def __str__(self):
        return self.user.username
    

    class UserLeavingMessage(models.Model):
    """
    用户留言
    """
    MESSAGE_CHOICES = (
    (1, "留言"),
    (2, "投诉"),
    (3, "询问"),
    (4, "售后"),
    (5, "求购")
    )
    user = models.ForeignKey(User, verbose_name="用户")
    message_type = models.IntegerField(default=1, choices=MESSAGE_CHOICES, verbose_name="留言类型",
    help_text=u"留言类型: 1(留言),2(投诉),3(询问),4(售后),5(求购)")
    subject = models.CharField(max_length=100, default="", verbose_name="主题")
    message = models.TextField(default="", verbose_name="留言内容", help_text="留言内容")
    file = models.FileField(upload_to="message/images/", verbose_name="上传的文件", help_text="上传的文件")
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name = "用户留言"
        verbose_name_plural = verbose_name
    
    def __str__(self):
        return self.subject
    

    class UserAddress(models.Model):
    """
    用户收货地址
    """
    user = models.ForeignKey(User, verbose_name="用户" )
    province = models.CharField(max_length=100, default="", verbose_name="省份")
    city = models.CharField(max_length=100, default="", verbose_name="城市")
    district = models.CharField(max_length=100, default="", verbose_name="区域")
    address = models.CharField(max_length=100, default="", verbose_name="详细地址")
    signer_name = models.CharField(max_length=100, default="", verbose_name="签收人")
    signer_mobile = models.CharField(max_length=11, default="", verbose_name="电话")
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name = "收货地址"
        verbose_name_plural = verbose_name
    
    def __str__(self):
        return self.address
    

    11.运行manage报错

    image.png

    处理办法:删除user

    12. 安装xadmin的依赖插件

    https://github.com/sshwsfc/xadmin

    image.png image.png

    参考的文章链接:
    https://www.cnblogs.com/xuepangzi/p/8547272.html

    相关文章

      网友评论

          本文标题:新建Django +vue 项目 二

          本文链接:https://www.haomeiwen.com/subject/lswsiftx.html