django mysql 一对多_Django数据库--一对多表操作

本文介绍了在Django中如何建立和管理商品模型与商品类型的数据库一对多关系。通过创建GoodsType和Goods模型,使用ForeignKey字段进行关联,并展示了增加和查询数据的示例代码。
摘要由CSDN通过智能技术生成

商品模型和商品类型一对多的关系

一种类型有多个商品

一种商品属于一个类型

创建模型

一对多使用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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值