您好我现在遇到join语句查询不到结果的问题,

来源:12-5 回复和获取问题的回复

慕仔7112570

2020-03-10

您好我现在遇到join语句查询不到结果的问题,
我的代码是这样

这个的Model的表结构

class Attributes(BaseModel):
    id = BigIntegerField(verbose_name="商品ID",primary_key = True)
    brandId = SmallIntegerField(verbose_name="品牌ID")
    brandName = CharField(null = True,max_length = 64, verbose_name="品牌名称")
    productType = SmallIntegerField(verbose_name="产品类型")
    shopId = SmallIntegerField(null = True,verbose_name="商铺的ID")
    shopName = CharField(null = True,max_length = 18, verbose_name="商铺的名称")
    primaryPic = CharField(max_length = 128, verbose_name="商品的封面")

    @classmethod
    def extend(cls):
        return cls.select(cls,Goods).join(Goods)

class Goods(BaseModel):
    usedNo = ForeignKeyField(Attributes,verbose_name="商品ID",backref="goods")
    actualEndTime = BigIntegerField(verbose_name="实际的截止时间")
    spectatorCount = SmallIntegerField(verbose_name="围观人数")
    quality = CharField(null = True,max_length = 12,verbose_name="质量")
    startTime = BigIntegerField(verbose_name="开始时间")
    endTime = BigIntegerField(verbose_name="结束时间")
    auctionType = SmallIntegerField(verbose_name="类型")

handler

class AttributesListHandler(BaseHandler):
    async def get(self, *args, **kwargs):
        attributes_query = Attributes.extend()
        attributes = await self.application.objects.execute(attributes_query)
        for group in attributes:
            group_dict = model_to_dict(group)
            re_data.append(group_dict)
        self.finish(json.dumps(re_data, default=json_serial))

Attributes主要记录商家的信息
Goods记录商品的信息
我现在需要获取商家的list,list中需要有商家对应商品的list
目前上面的代码查询到的结构只有Attributes的信息。无Goods的信息。

写回答

1回答

bobby

2020-03-11

class Pet(peewee.Model):    name = peewee.CharField()    owner = peewee.ForeignKeyField(Person,related_name="pets",backref="petties")  
  # backref是反查的字段,如果有related_name用related_name反查,如果没有直接用petties反查 e.g. [i.name for i in Person.get(name="aaa").petties]
0
0

Tornado从入门到进阶 打造支持高并发的技术论坛

异步IO并发编程/Form,ORM/aiomysql、peewee-async/epoll

593 学习 · 350 问题

查看课程