| 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 | |