Trucs de l'administrador de Django
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
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
1list_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.