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 | |
| 109 | Campos |
| 110 | ====== |
| 111 | |
| 112 | A parte mais importante de um model -- e a única obrigatória -- é a |
| 113 | definição da lista de campos da base de dados. Esses campos são |
| 114 | especificados por atributos de classe. |
| 115 | |
| 116 | Exemplos: |
| 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 | |
| 123 | Restrições de nomes de campos |
| 124 | ----------------------------- |
| 125 | |
| 126 | O 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 | |
| 142 | Essas limitações podem ser contornadas, porque o nome do campo não precisa |
| 143 | necessariamente conter o nome da coluna do banco de dados. Veja a seção |
| 144 | `db_column`_ abaixo. |
| 145 | |
| 146 | |
| 147 | |