| 256 | Por padrão, Django mostra o método ``str()`` de cada objeto. Porém às vezes seria melhor se nós pudéssemos mostrar campos individuais. Para fazer isso, nós usamos a opção ``list_display``, que é uma tupla dos campos a mostrar, como colunas, na pagina "change list" para tal objeto:: |
| 257 | |
| 258 | class Poll(models.Model): |
| 259 | # ... |
| 260 | class Admin: |
| 261 | # ... |
| 262 | list_display = ('question', 'pub_date') |
| 263 | |
| 264 | |
| 265 | Como demonstração, vamos incluir o método ``was_published_today`` criado no Tutorial 1:: |
| 266 | |
| 267 | list_display = ('question', 'pub_date', 'was_published_today') |
| 268 | |
| 269 | Veja como a página está: |
| 270 | |
| 271 | .. image:: http://media.djangoproject.com/img/doc/tutorial/admin13t.png |
| 272 | :alt: "Change list" dos objetos "Poll" |
| 273 | :target: http://media.djangoproject.com/img/doc/tutorial/admin13.png |
| 274 | |
| 275 | Você pode clicar nos títulos das colunas para ordenar por seus valores - exceto no caso da coluna ``was_published_today``, porque ordenar pelos valores de um método não é suportado. Note também que o título da coluna do método ``was_published_today`` é, por padrão, o nome do método (com o underscore substituído por espaço). Mas você pode mudar isso criando um atributo ``short_description`` para o método:: |
| 276 | |
| 277 | def was_published_today(self): |
| 278 | return self.pub_date.date() == datetime.date.today() |
| 279 | was_published_today.short_description = 'Published today?' |
| 280 | |
| 281 | Vamos melhorar ainda mais nossa "change list": Filtros. Adicione a seguinte linha em ``Poll.Admin``:: |
| 282 | |
| 283 | list_filter = ['pub_date'] |
| 284 | |
| 285 | Isso adiciona um menu de filtro, que deixa as pessoas filtrarem a "change list" pelo campo pub_date: |
| 286 | |
| 287 | .. image:: http://media.djangoproject.com/img/doc/tutorial/admin14t.png |
| 288 | :alt: Polls change list page, updated |
| 289 | :target: http://media.djangoproject.com/img/doc/tutorial/admin14.png |