| | 43 | =================== |
| | 44 | Referência do Model |
| | 45 | =================== |
| | 46 | |
| | 47 | O model é a fonte única e definitiva dos seus dados, nele estão contidos os |
| | 48 | campos essenciais e relacionamentos dos dados que você está arquivando. |
| | 49 | Genericamente, cada model referencia a uma tabela no banco de dados. |
| | 50 | |
| | 51 | O básico: |
| | 52 | |
| | 53 | * Cada model é uma classe Python que é uma subclasse de |
| | 54 | ``django.db.models.Model``. |
| | 55 | * Cada atributo do model representa um campo na base de dados. |
| | 56 | * Metadados do model (informações descritivas dos dados) vão para uma |
| | 57 | classe interior nomeada ``Meta``. |
| | 58 | * Metadados usados para o site de administração do Django vão para a |
| | 59 | classe interior nomeada ``Admin``. |
| | 60 | * A partir disso o Django oferece uma API de acesso ao banco de dados |
| | 61 | gerada automaticamente, que é melhor explicada na |
| | 62 | `Referência da API de Banco de Dados`_. |
| | 63 | |
| | 64 | Associado a esse documento existe o `repositório oficial de exemplos de |
| | 65 | models`_.(No código fonte do Django, estes exemplos se encontram no |
| | 66 | diretório ``tests/modeltests``.) |
| | 67 | |
| | 68 | .. _Referência da API de Banco de Dados: |
| | 69 | http://www.djangoproject.com/documentation/db_api/ |
| | 70 | .. _repositório oficial de exemplos de model: |
| | 71 | http://www.djangoproject.com/documentation/models/ |
| | 72 | |
| | 73 | Exemplo rápido |
| | 74 | ============== |
| | 75 | |
| | 76 | Este model exemplo define uma ``Person``, que possui um ``first_name`` e |
| | 77 | ``last_name``:: |
| | 78 | |
| | 79 | from django.db import models |
| | 80 | |
| | 81 | class Person(models.Model): |
| | 82 | first_name = models.CharField(maxlength=30) |
| | 83 | last_name = models.CharField(maxlength=30) |
| | 84 | |
| | 85 | ``first_name`` e ``last_name`` são *campos* do model. Cada campo é |
| | 86 | especificado como um atributo da classe, e cada atributo referencia a uma |
| | 87 | coluna do banco de dados. |
| | 88 | |
| | 89 | O model ``Person`` acima criaria uma tabela no banco de dados como essa:: |
| | 90 | |
| | 91 | CREATE TABLE myapp_person ( |
| | 92 | "id" serial NOT NULL PRIMARY KEY, |
| | 93 | "first_name" varchar(30) NOT NULL, |
| | 94 | "last_name" varchar(30) NOT NULL |
| | 95 | ); |
| | 96 | |
| | 97 | Algumas notas técnicas: |
| | 98 | |
| | 99 | * O nome da tabela, ``myapp_person``, é automaticamente atribuído de |
| | 100 | algum metadado do model podendo ser sobrescrito. Olhe _`Nome de |
| | 101 | Tabelas` abaixo. |
| | 102 | * Um campo ``id`` é adicionado automaticamente |
| | 103 | |
| | 104 | |