Code

Changes between Version 4 and Version 5 of DocPtModelAPI


Ignore:
Timestamp:
11/01/06 03:22:32 (8 years ago)
Author:
anonymous
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DocPtModelAPI

    v4 v5  
    9898      algum metadado do model podendo ser sobrescrito. Olhe _`Nome de 
    9999      Tabelas` abaixo. 
    100     * Um campo ``id`` é adicionado automaticamente 
     100    * Um campo ``id`` é adicionado automaticamente, mas essa ação pode ser 
     101      configurada. Olhe `Campos de chave primária automáticos`_ a seguir. 
     102    * O código SQL ``CREATE TABLE`` utilizado no exemplo está formatado 
     103      na syntax do PostgreSQL, porém é valido notar que o Django utiliza 
     104      a syntax de acordo com o tipo de banco de dados especificado no seu 
     105      `arquivo de configurações`_. 
     106 
     107.. _arquivo de configurações: http://www.djangoproject.com/documentation/settings/ 
     108 
     109Campos 
     110====== 
     111 
     112A parte mais importante de um model -- e a única obrigatória -- é a 
     113definição da lista de campos da base de dados. Esses campos são 
     114especificados por atributos de classe. 
     115 
     116Exemplos: 
     117 
     118    class Musician(models.Model): 
     119        first_name = models.CharField(maxlength=50) 
     120        last_name = models.CharField(maxlength=50) 
     121        instrument = models.CharField(maxlength=100) 
     122 
     123Restrições de nomes de campos 
     124----------------------------- 
     125 
     126O Django impõe apenas dois tipos de restrição à nomes de campos: 
     127 
     128    1. O campo não pode ser nomeado com uma palavra reservada do Python, 
     129       porque seu uso ocasionaria em um erro de sintaxe. Por exemplo:: 
     130 
     131           class Example(models.Model): 
     132           pass = models.IntegerField() # 'pass' é uma palavre reservada! 
     133 
     134    2. Um nome de campo não pode possuir mais do que uma sobrelinha por 
     135       linha, por causa da sintaxe do Django para buscas no banco. Por 
     136       exemplo:: 
     137 
     138           class Example(models.Model): 
     139               foo__bar = models.IntegerField() 'foo__bar' possui duas 
     140               sobrelinhas! 
     141 
     142Essas limitações podem ser contornadas, porque o nome do campo não precisa 
     143necessariamente conter o nome da coluna do banco de dados. Veja a seção 
     144`db_column`_ abaixo. 
     145 
     146 
     147 
    101148 
    102149}}}