105-django-52

Novidades do Django 5.2

Em 02 de Abril de 2025 saiu o Django 5.2.

Veja o video no YouTube em breve.

Doc: https://docs.djangoproject.com/en/5.2/releases/5.2/

Github: https://github.com/rg3915/django52

Importante: remova a \ no meio das tags.


E eu vou destacar aqui algumas das novidades:

Importação automática dos modelos no shell (Automatic models import in the shell)

01

Ou digite simplesmente python manage.py shell

python manage.py shell -v 2 é o modo verboso.

Se quiser, você pode desabilitar isso. Leia mais em How to customize the shell command

Composição de Chave Estrangeira (Composite Primary Keys)

O novo django.db.models.CompositePrimaryKey permite a criação de tabelas com uma chave primária composta por vários campos.

02

🧳 Exemplo 1: Sistema de Reservas de Passagens

  • Tabela: Reserva

  • Chave composta: (voo_id, passageiro_id)

  • Motivo: Motivo: Um passageiro pode ter várias reservas, e um voo pode ter vários passageiros. A chave composta identifica uma reserva única por voo e passageiro.

🏫 Exemplo 2: Registro de Presença em Aulas

  • Tabela: Presenca

  • Chave composta: (aluno_id, data, aula_id)

  • Motivo: Um aluno só pode ter um registro por aula por dia. Isso evita duplicidade de presença.

Diagrama UML (feito no mermaid.live):

mermaid_school

models.py

Agora veja o arquivo apps/school/models.py

admin.py

Erro ao registrar no admin:

Resultado:

ImproperlyConfigured

Observações:

Segunda a doc:

Ainda estamos trabalhando no suporte a chaves primárias compostas para campos relacionais, incluindo campos GenericForeignKey, e para o Django Admin. No momento, modelos com chaves primárias compostas não podem ser registrados no Django Admin. Você pode esperar esse recurso em versões futuras.

Veja mais em:

Veja aqui a chave composta via DBeaver.

DBeaver

Observações: O Django não oferece suporte para migração para, ou a partir de, uma chave primária composta após a criação da tabela. Também não é possível adicionar ou remover campos de uma chave primária composta por meio de migrações do Django.

Se você deseja migrar uma tabela existente de uma chave primária única para uma chave primária composta, siga as instruções específicas do seu sistema de banco de dados para realizar essa alteração manualmente.

Depois que a chave primária composta estiver definida no banco de dados, adicione o campo CompositePrimaryKey ao seu modelo. Isso permitirá que o Django reconheça e trate corretamente a chave primária composta.

Leia mais em Migrating to a composite primary key

Minor features

Forms — New Inputs

ColorInput

forms.py

Rodando: localhost:8000/school/create

TelInput

SearchInput

Você também pode usar o django-phonenumber-field para validar o formato do telefone no models ou no forms.

JSONArray

A nova função de banco de dados JSONArray aceita uma lista de nomes de campos ou expressões e retorna um array JSON contendo esses valores.

jsonarray

Templates

simple_block_tags

Documentação

O novo decorador simple_block_tag() permite a criação de block tags simples, que podem aceitar e utilizar uma seção do template.

simple_block_tag 06
simple_block_tag 07
simple_block_tag 08
  • Arquivo: card_tags.py

card_tags
  • Template: student_list.html

student_list.html

Alterações incompatíveis com versões anteriores na versão 5.2

Não tem mais suporte ao PostgreSQL 13

O suporte oficial ao PostgreSQL 13 será encerrado em novembro de 2025. O Django 5.2 oferece suporte ao PostgreSQL 14 e versões superiores.

Last updated

Was this helpful?