Django Rest Framework

53 views
Skip to first unread message

Douglas C. Rodrigues

unread,
Feb 22, 2022, 9:53:40 PM2/22/22
to Python Brasil
Boa noite pessoal, tudo bem?

Eu estou desenvolvendo uma api para um validador de tickets para um estacionamento, e estou utilizando o DRF com o react, porém, estou em uma dúvida na parte dos serializes e viewsets, preciso que minha API devolva os dados de 2 tabelas em um único seriualizer, e não estou conseguindo fazer isso.

Exemplo Table_1 e Table2

Table_1 = id_ticket, placa
Table_2 = id_patio, grupo

retorno desejado = {
     id_ticket,
     placa,
    id_patio
}

vou mandar alguns prints de como esta meu model.py

models.PNG

No banco de dados consigo retornar esses valores utilizando o inner join, mais aqui não consigo fazer isso, alguem poderia me ajudar por favor?

Muito obrigado

Tiago Cardoso

unread,
Feb 23, 2022, 6:08:53 AM2/23/22
to python...@googlegroups.com
Bom dia, Douglas!

Você pode utilizar o Nested relationships. Veja o exemplo na documentação:

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/3972ef80-7920-41b7-8923-839aa49eb9d0n%40googlegroups.com.


--
Atenciosamente,
Tiago Cardoso

Douglas C. Rodrigues

unread,
Feb 23, 2022, 1:52:04 PM2/23/22
to Python Brasil
Obrigado Tiago!

Sobre as viewset, como posso fazer isso?

Marcel Rahal

unread,
Feb 23, 2022, 2:08:50 PM2/23/22
to python...@googlegroups.com
Cria uma view e busca os dados na view

Eduardo Tolmasquim

unread,
Feb 28, 2022, 11:14:47 AM2/28/22
to Python Brasil
Não entendi completamente os seus modelos, mas vou supor que Ticket_Validado serve para fazer a relação N para N de Ticket com Patio Credenciado.

Uma opção é criar um dicionário e retornar, sem passar por um serializer. O join é feito automaticamente pelo ORM do Django ao acessar a propriedade que é uma Foreign Key. Por exemplo:

from rest_framework import Response

@api_view(["GET"])
def get_tickets(request):
    tickets = Ticket.objects.all()
    data = []
    for ticket in tickets:
        data.append({
            "id_ticket": ticket.id,
            "placa": ticket.numero_ticket.placa_veiculo,
            "id_patio": ticket.id_patio.id_patio
        })
    return Response(data)
Reply all
Reply to author
Forward
0 new messages