Created
May 1, 2021 18:35
-
-
Save CoutinhoElias/49a6c24476f1e55d2e182384a935781a to your computer and use it in GitHub Desktop.
Join with peewee
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Minhas tabelas relacionadas: | |
class Produto(BaseModel): | |
cdchamada = CharField(null=True, unique=True) | |
dsdescricaoecommerce = TextField(null=True) | |
dsobservacao = TextField(null=True) | |
idproduto = CharField(primary_key=True, null=False) | |
nmproduto = CharField(index=True, null=True) | |
stativo = CharField(null=True) | |
class Meta: | |
table_name = 'produto' | |
#CompositeKey('dscodigo', 'tpcodigo') | |
class Codigos(BaseModel): | |
dscodigo = CharField() | |
iddetalhe = CharField(null=True) | |
#idproduto = CharField() | |
idproduto = ForeignKeyField(Produto.idproduto, backref='codigos') | |
tpcodigo = CharField() | |
class Meta: | |
table_name = 'codigos' | |
# Minha consulta: | |
'''No modo SQL funciona''' | |
""" SELECT * | |
FROM produto | |
INNER JOIN codigos | |
ON produto.idproduto_id = codigos.idproduto | |
ORDER by produto.nmproduto; | |
""" | |
'''Com peewee retorna o erro abaixo da consulta:''' | |
grupo = Produto.select().join(Codigos).where(Codigos.idproduto_id == Produto.idproduto) | |
# O retorno: | |
''' | |
ValueError('Unable to find foreign key between %s and %s. ' | |
ValueError: Unable to find foreign key between <Model: Produto> and <Model: Codigos>. Please specify an explicit join condition. | |
''' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment