[求助]电子商城商品发布,属性表如何关联

2016-08-10 20:58:59 +08:00
 tangym

想要在增加商品的时候,能够添加颜色,尺码,库存,价格等属性,我将这些属性存在 stock 表中, stock 表通过外键商品 id 来关联 stock 表中多条数属性数据。 这样我好比一件衣服,就可以定义多个颜色,以及对应尺码库存价格等多条数据存储在 stock 表中。

products 商品表:(markdown语法显示不正常,可以自行拷贝到md文件中预览)

| id | 名称 | 正文描述 | 类目 | 品牌 | 状态 |

|---|-------|------------|------|-------|-------|

| 1 | 圣罗 | 今夏火爆 | 上装 | slp | 销售中|

stock 属性表:

| id | products_id | 颜色 | 尺码 | 库存 | 零售价 | 代理价 | 促销价 |

|-----|---------------|-------|-------|--------|---------|-------------|-----------|

| 1 | 1 | 蓝 | s | 5 | 100 | 80 | 90 |

| 2 | 1 | 蓝 | m | 3 | 98 | 78 | 88 |

| 3 | 1 | 白 | s | 2 | 90 | 80 | 85 |

那么在 model.py 中如何写代码表示这种关系呢,并且在增加商品时,可以出现 stock 表中属性,可以填写。 我是这样写的,但我知道不对。。。。。

class products(models.Model):
    product_name=models.CharField(max_length=200)
    product_description=models.TextField()
    product_category=models.ForeignKey(categories)
    product_band=models.ForeignKey(bands)
    product_status=models.ForeignKey(status)
    product_attribute=models.ManyToManyField(stock,related_name='product_id')
    product_photo=models.ImageField(null=True,blank=True)

    def __str__(self):
        return self.product_name
    def __unicode__(self):
        return self.product_name

class stock(models.Model):
    product_id=models.ForeignKey(products)
    product_color=models.CharField(max_length=50)
    product_size=models.CharField(max_length=10)
    product_amount=models.IntegerField()
    product_price=models.FloatField()
    product_vip1price=models.FloatField()
    product_vip2price=models.FloatField()
    product_agent1price=models.FloatField()
    product_agent2price=models.FloatField()
    product_agent3price=models.FloatField()

    def __str__(self):
        return self.id
    def __unicode__(self):
        return self.id

求大神指导,不胜感激

2730 次点击
所在节点    Django
3 条回复
windedge
2016-08-11 16:28:28 +08:00
tangym
2016-08-11 21:40:58 +08:00
@windedge 很好的学习范例,谢谢
tangym
2016-08-11 21:59:30 +08:00
@windedge 看的真懵逼了。。。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/298482

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX