两表联查:
# 商品类别表
class Category(models.Model):
cate_name = models.CharField(max_length=50, verbose_name='类别名')
# 商品信息表
class Goods(models.Model):
sku_name = models.CharField(max_length=100, verbose_name='商品名')
price = models.DecimalField(max_digits=9, decimal_places=2, verbose_name='商品价格')
selling_price = models.DecimalField(max_digits=13, decimal_places=2, verbose_name="商品销售价格")
img = models.CharField(max_length=200, verbose_name="商品默认图片")
title = models.CharField(max_length=30, verbose_name="商品标题", null=True)
instruction = models.TextField(verbose_name="商品的描述信息")
count = models.IntegerField(verbose_name="商品销售数量", default=0)
stock = models.IntegerField(verbose_name="商品库存数量", default=0)
cate = models.ForeignKey(Category, on_delete=models.CASCADE, verbose_name='商品类别')
# cate = models.ForeignKey(Category, related_name='goods', on_delete=models.CASCADE, verbose_name='用户')
online = models.BooleanField("是否在售", default=True)
通过主表id 查询对应的 子表的数据:
(方法一:反向查询)
cat_id=Category.objects.get(id=cate_id)
------ 获取主表id对应的对象
goods_data = cat_id.goods_set.all()
------ 对象.子表数据库名_set.all()
# 商品类别表
class Category(models.Model):
cate_name = models.CharField(max_length=50, verbose_name='类别名')
# 商品信息表
class Goods(models.Model):
cate = models.ForeignKey(Category, related_name='goods', on_delete=models.CASCADE, verbose_name='用户')
(方法二:模型类添加属性 related_name)
cat_id=Category.objects.get(id=cate_id)
------ 获取主表id对应的对象
goods_data = cat_id.goods.all()
------ 对象.related绑定对象.all()
# #related_name用于反向查询 cat_id.goods.all()
# #不定义的话 就是cat_id.goods_set.all()
# 根据cate_id的值,加载指定类别的商品对象
# 加载指定类别商品对象
# 'cate_id=' cate为外键, 用外键调用的id 为Category表中cate_id字段
goods_queryset = Goods.objects.filter(cate_id=cate_id)
(方法三:外键)
goods_queryset = Goods.objects.filter(cate_id=cate_id)
----- 子表模型类.objects.filter(外键=主表的id)
------------------------------------------------------------------------------------------------------------------
单表数据查询:
class GoodData(models.Model):
sku_name = models.CharField('商品名', max_length=50)
price = models.DecimalField('商品价格', max_digits=9, decimal_places=2)
selling_price = models.DecimalField('商品销售价格', max_digits=9, decimal_places=2)
img = models.CharField('商品默认图片', max_length=200)
1.获取表中所有数据:
GoodData.objects.all()
2.通过表中id 查询对应的 id下所有数据:
# 前端获取到此id:'NameId' 为GoodData表中某件商品的id
good_id = request.query_params.get('NameId')
# 通过某件商品id编号 查询出此商品在本表中的所有数据
good_data = GoodData.objects.filter(id=good_id).all()
--------- 模型类.objects.对象.all()



