2010-02-09 7 views
5

J'ai une mise en page d'administration TabularInline, tout fonctionne bien, sauf que je voudrais l'afficher autre chose que la valeur Obj.__unicode__ en haut à gauche de chaque ligne. Mon TabularInline est un modèle de photologue ImageModel, donc j'aimerais qu'il me montre la vignette au lieu du résultat habituel __unicode__.Personnalisation de Django admin TabularInline champ par défaut

J'ai essayé de changer __unicode__ pour produire la vignette, qui fonctionne, sauf le code HTML est évadé si je reçois <img src="XXX"...... etc

est-il un moyen facile de marquer ma méthode __unicode__ comme une chaîne sûre? Ou un moyen de remplacer la propriété que l'administrateur choisit d'afficher?

J'ai essayé ceci:

__unicode__.is_safe = True 

Mais cela ne fonctionne pas.

Répondre

7

Vous pouvez personnaliser le modèle pour que TabularInline vous donne l'apparence que vous souhaitez. Je pense qu'il est une meilleure idée puis le piratage __unicode__:

class PhotoInline(admin.TabularInline): 
    model = Photo 
    template = 'photologue/photoinline.html' 

La meilleure façon de créer votre est de copier et de personnaliser le modèle par défaut django/contrib/admin/templates/admin/edit_inline/tabular.html.

+0

oui - c'est ainsi que j'allais - j'ai depuis créé un nouveau Widget pour montrer l'image (copié de djangosnippets) –

Questions connexes