Code


Version 3 (modified by anonymous, 7 years ago) (diff)

--

THIS TRANSLATION IS IN PROGRESS:

This is an in progress translation document, that means there is somebody working on it. For more information on translating documents please look at TranslateDocumentation Wiki. Please do not edit this page.

Conteúdos do capítulo

Este documento cobre a versão 0.95 de Django e a versão do desenvolvimento. Docs anteriores: 0.90, 0.91

Referência dos Models

Um model é a fonte única e definitiva dos seus dados, nele estão contidos os campos essenciais e relacionamentos dos dados que você está arquivando. Genericamente, cada model referencia a uma tabela no banco de dados.

O básico:

  • Cada model é uma classe Python que é uma subclasse de django.db.models.Model.
  • Cada atributo do model representa um campo na base de dados.
  • Metadados do model (informações descritivas dos dados) vão para uma classe interior nomeada Meta.
  • Metadados usados para o site de administração do Django vão para a classe interior nomeada Admin.
  • A partir disso o Django oferece uma API de acesso ao banco de dados gerada automaticamente, que é melhor explicada no `Database API reference`_.

Associado a esse documento existe o repositório oficial de exemplos de models.(No código fonte do Django, estes exemplos se encontram no diretório tests/modeltests.)

Exemplo rápido

Este model exemplo define uma Person, que possui um first_name e last_name:

from django.db import models

class Person(models.Model):
    first_name = models.CharField(maxlength=30)
    last_name = models.CharField(maxlength=30)

first_name e last_name são campos do model. Cada campo é especificado como um atributo da classe, e cada atributo referencia a uma coluna do banco de dados.

O model Person acima criaria uma tabela no banco de dados como essa:

CREATE TABLE myapp_person (
    "id" serial NOT NULL PRIMARY KEY,
    "first_name" varchar(30) NOT NULL,
    "last_name" varchar(30) NOT NULL
);

Algumas notas técnicas:

  • O nome da tabela, myapp_person, é automaticamente atribuído de algum metadado do model podendo ser sobrescrito. Olhe Nome de Tabelas abaixo.
  • Um campo id é adicionado automaticamente

Docutils System Messages

?