Dica 19.1 - Modelagem - OneToMany - Um pra Muitos - ForeignKey - Chave Estrangeira
Leia
ORM - Object Relational Mapping
Rodando comandos direto no PostgreSQL.
docker-compose up -d
docker container exec -it dicas_de_django_db psql
\l # lista os bancos
\c dicas_de_django_db # conecta em dicas_de_django_db
\dt # lista as tabelas
SELECT first_name, last_name, email FROM accounts_user;
SELECT * FROM accounts_user;
\q # sairRodando comandos pelo Django
Dentro do container
Caso dê erro no container faça
Fora do container
Fazendo mais algumas queries.
E agora vamos aplicar um filtro.
Leia QuerySet API reference #icontains.
Criando uma nova app
Vamos criar uma nova app chamada bookstore.
Adicione em INSTALLED_APPS
Edite urls.py
Edite bookstore/apps.py
Crie bookstore/urls.py
OneToMany - Um pra Muitos - ForeignKey - Chave Estrangeira
É o relacionamento onde usamos chave estrangeira, conhecido como ForeignKey.

Ilustração feita com excalidraw.com.
Um cliente pode fazer vários pedidos, então para reproduzir o esquema acima, usamos o seguinte código:
Diagrama ER

Inserindo dados com django-seed
Edite settings.py
Gerando os dados
ORM
PostgreSQL e pgAdmin no Docker
Vamos usar o PostgreSQL rodando no Docker.
Podemos ver tudo pelo pgAdmin, ou
As tabelas
Os registros
Schema
DBeaver e CloudBeaver
CloudBeaver
https://github.com/dbeaver/cloudbeaver/wiki/Run-Docker-Container
https://cloudbeaver.io/doc/cloudbeaver.pdf
Edite o docker-compose.yml
E rode
Entre no Portainer e entre no CloudBeaver.
Login e senha
Conexão com dicas_de_django_db.
pgAdmin 4
DBeaver
Jupyter Notebook
Para instalar o Jupyter digite
E para rodar digite
Quando você tentar rodar
Você vai ter este erro
Então edite o settings.py
Mas o código completo deve ser
Ou seja, a partir da ordem de compra conseguimos ver o cliente.
E como fazemos para a partir do cliente, ver as ordens de compra dele?
Ou seja, pegamos os dados pelo related_name.
Last updated
Was this helpful?