丝路通:更改goods modeles设计

来自CloudWiki
跳转至: 导航搜索

原表:商品类别表GoodsCategory

在apps/goods/models.py中。

这个表记录商品的所属类别,

一级类名、二级类名都用这个表表示

from datetime import datetime

from django.db import models
from DjangoUeditor.models import UEditorField
# Create your models here.


class GoodsCategory(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



增添/修改字段

在上述文件中增添一个字段:parent_category_name ,source_site

 parent_category_name = models.CharField(default="",null=True, max_length=30, verbose_name="父类别名", help_text="父类别名")
 source_site =  models.CharField(default="",null=True, max_length=30, verbose_name="来源网站",help_text="来源网站")

模型迁移及导入

python3 manage.py makemigrations

python3 manage.py sqlmigrate goods 0001

python3 manage.py migrate

验证

mysql -uroot -p

MariaDB [mxshop]> desc goods_goods;


+-------------------+--------------+------+-----+---------+----------------+
| Field             | Type         | Null | Key | Default | Extra          |
+-------------------+--------------+------+-----+---------+----------------+
| id                | int(11)      | NO   | PRI | NULL    | auto_increment |
| goods_sn          | varchar(50)  | NO   |     | NULL    |                |
| name              | varchar(100) | NO   |     | NULL    |                |
| click_num         | int(11)      | NO   |     | NULL    |                |
| sold_num          | int(11)      | NO   |     | NULL    |                |
| fav_num           | int(11)      | NO   |     | NULL    |                |
| goods_num         | int(11)      | NO   |     | NULL    |                |
| market_price      | double       | NO   |     | NULL    |                |
| shop_price        | double       | NO   |     | NULL    |                |
| goods_brief       | longtext     | NO   |     | NULL    |                |
| goods_desc        | longtext     | NO   |     | NULL    |                |
| ship_free         | tinyint(1)   | NO   |     | NULL    |                |
| goods_front_image | varchar(200) | YES  |     | NULL    |                |
| is_new            | tinyint(1)   | NO   |     | NULL    |                |
| is_hot            | tinyint(1)   | NO   |     | NULL    |                |
| add_time          | datetime     | NO   |     | NULL    |                |
| category_id       | int(11)      | NO   | MUL | NULL    |                |
| category1_name    | varchar(100) | YES  |     | NULL    |                |
| category2_name    | varchar(100) | YES  |     | NULL    |                |
| category3_name    | varchar(100) | YES  |     | NULL    |                |
| goods_url         | varchar(150) | YES  |     | NULL    |                |
| source_site       | varchar(30)  | YES  |     | NULL    |                |
+-------------------+--------------+------+-----+---------+----------------+
22 rows in set (0.01 sec)