Trucs de l'administrador de Django


Escrit per Aaloy a 19 de March , 2009 a les 11:50 p.m.

Encara que a la documentació de l'administrador ho diu, sovint estam tan acostumats a fer feina amb camps que ens oblidam que al list_display de l'admin de Django hi podem fer servir qualsevol atribut o mètode susceptible de ser cridat (entre d'altres opcions).

Això obre tot un món de possibilitats a l'hora de presentar informació en forma tabular dins l'admin, podem crear enllaços cap a altres seccions, mostrar imatges, el que se'ns pugui ocorre i que tengui algun tipus de lligam amb el model.

Un exemple ben senzill, suposem que tenim un model que té una imatge associada, el que voldríem és que a la informació ens aparegui aquesta imatge, llavors faríem:

Al model afegim

1
2
3
4
5
6
7
def get_foto(self):
  if self.foto:
     return '<img src="%s" width="64">' % self.foto.url
  else:
     return ""
get_foto.allow_tags = True
get_foto.short_description = 'Foto'

i a l'admin.py afegirem a la configuració de l'administrador del nostre model

1
list_display = ('get_foto', ...)

Podem complicar-ho tant com vulguem, un exemple ho tenim al Django Snippet d'Admin list Thumbnail, que complica la funció per a crear les miniatures de les imatges que es presentaran i disminuir així el pes de la plana.

El que és important d'aquest exemple és veure l'ús que es fa de allow_tags, si el mètode té aquesta propietat Django no escaparà l'html que li passem, donant-nos joc a presentar tot tipus de codi html, baix la nostra responsabilitat, clar.


Enllaços citats
Traducciones/Translations by apertium

0 comentaris, 0 trackbacks (URL) , Tags: Python Django


Avís: Els comentaris es tanquen automàticament als 30 dies