Trechos traduzidos do manual do Django

Usando Models

Depois de ter definido o seu model, você precisa configurar o django para poder utilizá-lo. Edite o arquivo settings.py e e acrescente no INSTALLED_APPS o nome do módulo (aplicação) que contém o arquivo models.py. Por exemplo, se o model para a sua aplicação está no módulo myagenda.agenda.models (essa estrutura é criada pelo manage.py startapp agenda), INSTALLED_APPS deve ficar:

1
2
3
4
INSTALLED_APPS = (
  #...
  'myagenda.agenda',
)

Após adicionar novos módulos em INSTALLED_APPS, execute manage.py syncdb.

Os campos

A parte mais importante de um modelo – e a única parte obrigatória – é a definição dos campos de dados. Os campos são especificados pelos atributos das classes.

Tipos de Campos

Cada campo do seu model deve ser uma instância da classe Field apropriada. Django utiliza os tipos da classe Field determinar algumas coisas:

O tipo de coluna da base de dados (ex.: INTEGER, VARCHAR).
O componente HTML para uso na interface do administrador no django.
Os requisitos mínimos para validação, utilizado no formulários da interface do administrador.

O django possui dezenas de tipos de campos. Também é possível escrever seus próprios campos personalizados.

AutoField – class AutoField (**options)

Campo do tipo Inteiro (IntegerField) que automaticamente incrementa seu valor. Em geral, utilizado para definição de chaves primárias.

Ex.: id_Pessoa = models.AutoField(primary_key=True)

BooleanField – class BooleanField (**options)

Campo do tipo verdadeiro/falso. Na interface de administração, será representado como uma caixa de seleção (select).
No MySQL é definido como um campo do tipo TINYINT, sendo 1 = verdadeiro e 0 = falso.

CharField – class CharField ( max_length=None [ , **options ] )

Campo do tipo string (VARCHAR). Para grandes quantidades de texto, utilize TextField.
Na interface de administração é representado como um input type=”text” (uma única linha de entrada).
Requer um argumento extra max_length, que define o tamanho máximo de caracteres no campo.

Ex.: Nome = models.CharField(max_length=50)

CommaSeparatedIntegerField - class CommaSeparatedIntegerField ( max_length=None [ , **options ] )

Um campo de inteiros separados por vírgulas. Tal como em CharField, o max_length argumento é necessário.

DateField – class DateField ( [ auto_now=False , auto_now_add=False , **options ] )

Uma campo de data. Possui alguns extras argumentos opcionais:

auto_now
Define automaticamente o valor do campo com a data de agora a cada vez que o objeto é atualizado. Mais utilizado como “última atualização”. Note que a data atual é sempre utilizada; não é apenas um valor padrão que você pode sobrepor.

auto_now_add
Define automaticamente o valor do campo com a data de agora, quando o primeiro objeto é criado. Útil para a criação de “data do cadastro”. Note que a data atual é sempre utilizada; não é apenas um valor padrão que você pode sobrepor.

Na interface de administração é representado como um input type="text" contendo um calendário em JavaScript e um atalho para “Hoje”. O calendário em JavaScript sempre inicia a semana em um domingo.

DateTimeField – class DateTimeField ( [ auto_now=False , auto_now_add=False , **options ] )

Um campo do tipo data e hora. Possui as mesmas opções extras como DateField.
A interface de administração representa como 2 campos input type="text", com atalho em Javascript.

DecimalField – class DecimalField ( max_digits=None , decimal_places=None [ , **options ] )

Um número fixo de precisão decimal, representado por uma instância de um número decimal em Python. Tem dois argumentos necessários:

max_digits
O número máximo permitido de dígitos no número

decimal_places
O número de casas decimais para armazenar com o número

Por exemplo, para armazenar até 999 números com uma resolução de 2 casas decimais, pode-se utilizar:
models.DecimalField (..., max_digits = 5, decimal_places = 2)
A interface de administração representa como um input type="text".

EmailField – class EmailField ( [ max_length=75 , **options ] )

Um CharField que verifica se o valor é um endereço de e-mail válido.

FileField – class FileField ( upload_to=None [ , max_length=100 , **options ] )

Um campo para upload de arquivo. Possui um argumento obrigatório:

upload_to
Caminho contendo o diretório usado para armazenar o arquivo, configurado no MEDIA_ROOT para determinar o valor padrao da url.
Este caminho pode ter uma formatação do tipo strftime, que será substituída pela data/hora que o arquivo foi enviado

A representação na interface de administração é um input type="file".

Considerações ao utilizar um FileField ou ImageField:

1.No settings.py, é necessário definir no MEDIA_ROOT o caminho completo onde ficará o diretório que serão armazenados os arquivos enviados. Esse diretório deve ter permissão de escrita para o usuário do servidor web.
2.Adicionar um FileField ou ImageField no model definindo no parâmetro upload_to o caminho/diretório de armazenamento.
3.Todo upload é armazenado no banco de dados como um caminho para o arquivo. Para converter em caminho de url, utiliza-se no model objeto.campoUplaod.url.

FloatField – class FloatField([**options])

Um número real (ponto flutuante).
Na interface de administração é representado por um input type=”text”.

IntegerField – class FloatField([**options])

Um número inteiro. Na interface de administração é representado por um input type="text".

ImageField – class ImageField(upload_to=None[, height_field=None, width_field=None, max_length=100, **options])

Semelhante ao FileField, porém verifica se o objeto enviado é uma imagem válida. Possui 2 parâmetros extras opcionais:

height_field
Nome do campo do model o qual será auto-preenchido com a altura da imagem no momento que o objeto for salvo.

width_field
Nome do campo do model o qual será auto-preenchido com a largura da imagem no momento que o objeto for salvo.

O FileField possui atributos especiais, File.height e File.width.

IPAddressField – class IPAddressField([**options])

Uma string no formato de endereço IP. É representado por um input type="text".

NullBooleanField – class NullBooleanField([**options])

Semelhante ao BooleanField, porém permite um valor NULL em uma das opções. Usado como o BooleanField com null=True.
A representação na interface de administração é um select com as opções “Desconhecido”, “Sim” e “Não”.

PositiveIntegerField – class PositiveIntegerField([**options])

Semelhante ao IntegerField, porém com número positivo.

PositiveSmallIntegerField – class PositiveSmallIntegerField([**options])

Semelhante ao PositiveIntegerField. A faixa de inteiros permitida depende do banco de dados utilizado.

SlugField – class SlugField([max_length=50, **options])

Slug é um termo de jornal. Um slug é um termo curto para qualquer coisa que contenha somente letras, número, underscores e hífens. Em geral, é usado em URLs.
Tal como CharField, você pode especificar o max_length. Se não especificado, django utilizará o valor padrão de 50 caracteres.

Necessário configurar Field.db_index para True.

SmallIntegerField – class SmallIntegerField([**options])

Tal como IntegerField, porém o tamanho depende do banco de dados utilizado.

TextField – class TextField([**options])

Campo para textos longos. Sua representação é textarea.

TimeField – class TimeField([auto_now=False, auto_now_add=False, **options])

Campo no formato de hora. Aceita opção como o DateField and DateTimeField.

URLField – class URLField([verify_exists=True, max_length=200, **options])

Um CharField para uma URL. Possui um argumento extra opcional:

URLField.verify_exists

Se True (padrão), verifica se a URL existe (não exibe mensagem de erro 404).

XMLField – class XMLField(schema_path=None[, **options])

Um TextField que verifica se seu valor é um XML válido.

Pages: 1 2 3 4

You can leave a response, or trackback from your own site.

Leave a Reply

Powered by WordPress | Shop the Best Verizon Wireless Deals. | Thanks to Best CD Rates, Credit Cards and Credit card