| 211 | Note também, o link "Add another" próximo ao campo "Poll". Todo objeto com um relacionamento ForeignKey tem esse recurso automaticamente. Quando você clica em "Add another", você verá uma janela popup com o formulário "Add poll". Se você adiciona um "Poll" nessa janela e clica em "Save", Django vai salvar o "Poll" no banco de dados e dinamicamente adiciona-lo como uma opção selecionada no formulário "Add choice" que você estava. |
| 212 | |
| 213 | Mas, realmente, essa é uma forma ineficiente de adicionar objetos "Choice" no sistema. Seria melhor se você pudesse adicionar vários "Choice" diretamente quando você adiciona um objeto "Poll". Vamos fazer isso acontecer. |
| 214 | |
| 215 | Remova a classe interna ``Admin`` do model Choice. Agora, edite o ``ForeignKey(Poll)`` campo dessa forma: |
| 216 | |
| 217 | poll = models.ForeignKey(Poll, edit_inline=models.STACKED, num_in_admin=3) |
| 218 | |
| 219 | Isso diz ao Django: "Objetos Choice são editados na página de administração do Poll. Por padrão, providencie 3 campos para Choice". |
| 220 | |
| 221 | Então, altere os outros campos no model ``Choice`` para alterálos para ``core=True``:: |
| 222 | |
| 223 | choice = models.CharField(maxlength=200, core=True) |
| 224 | votes = models.IntegerField(core=True) |
| 225 | |
| 226 | Isso diz ao Django: "Quando você editar um 'Choice' na pagina de administração do 'Poll' os campos 'choice' e 'vote' são requeridos. A presença de ao menos um deles significa a adição de um novo objeto "Choice" e limpar ambos os campos significa a deleção do objeto existente". |
| 227 | |
| 228 | Carregue a página "Add poll" para ver como ela está: |
| 229 | |
| 230 | .. image:: http://media.djangoproject.com/img/doc/tutorial/admin11t.png |
| 231 | :alt: Página "Add poll", agora com os objetos Choice |
| 232 | :target: http://media.djangoproject.com/img/doc/tutorial/admin11.png |
| 233 | |
| 234 | Ela funciona assim: há três espaços para objetos "Choice" - como foi especificado em ``num_in_admin`` - mas cada vez que você volta para a página de alteração de um objeto já criado, você tem um espaço extra. (Isso significa que não há uma quantidade fixa de quantos objetos relacionados podem ser adicionados.) Se você quisesse três espaços extras cada vez que você alterar um "Poll" você deverá usar ``num_extra_on_change=3``. |
| 235 | |