商品模型和商品类型一对多的关系
一种类型有多个商品
一种商品属于一个类型
创建模型
一对多使用ForeignKey 创建关系
建表
class GoodsType(models.Model):
"""
商品类型
"""
t_name = models.CharField(max_length=32,verbose_name="类型名字")
t_desc = models.TextField(verbose_name="类型描述")
class Meta:
db_table = "goods_type"
class Goods(models.Model):
"""
商品模型
"""
goods_name = models.CharField(max_length=32,verbose_name="商品名字")
goods_num = models.IntegerField(verbose_name="商品数量")
goods_price = models.FloatField(verbose_name="商品单价")
goods_type = models.ForeignKey(to=GoodsType,on_delete=models.CASCADE)
class Meta:
db_table = "goods"
(一)增加
增加类型
# goods_type = GoodsType.objects.create(
# t_name="水果",
# t_desc="水果"
# )
增加商品
增加商品
goods=Goods()
goods.goods_name = "西瓜"
goods.goods_num = 19
goods.goods_price = 10.10
# 第一种
goods.goods_type_id = goods_type.id # 关联表的id
goods.save()
goods_type = GoodsType.objects.filter(t_name="水果").first()
goods = Goods()
goods.goods_name = "香蕉"
goods.goods_num = 10
goods.goods_price = 100
goods.goods_type = goods_type# 对象
goods.save()
(二)查询
# 查询
# 正向
# 从 Goods -》 GoodsType
# 查询 香蕉的类型
goods = Goods.objects.filter(goods_name="香蕉").first()
goods_type = goods.goods_type
print(goods_type.t_name)
# 反向
# 从 GoodsType -> goods
#查询 水果类型下的商品
goods_type= GoodsType.objects.filter(t_name="水果").first()
goods = goods_type.goods_set.all().values("goods_name") # 关联模型类名小写_set
goods = goods_type.goods_set.first().goods_name # 关联模型类名小写_set
print(goods)