Django-fr

Forum

  • Accueil
  • » Django-fr
  • » Ajouter une colonne dans l'AdminSite avec list_display

#1 07-10-2013 15:39:48

azman0101
Membre
Inscription : 07-10-2013
Messages : 1

Ajouter une colonne dans l'AdminSite avec list_display

Bonjour,

En passant une méthode à list_display, j'ai réussi à ajouter une colonne.
https://docs.djangoproject.com/en/1.5/r … st_display

32     def iconprev(self, request):
   33         iconurl = "/filetype/48px/" + self.extension[1:] + '.png'
   34         urlabs = [str(fileupload.__path__), 'static/img/filetype', self.extension[1:] + '.png']
   35         print("URL ABS %s " % urlabs)
   36         if exists('/'.join(urlabs)):
   37             return format_html("<img src='{0}' />", iconurl)
   38         elif request.method == 'POST':
   39             form = UploadIconForm(request.POST, request.FILES) # Hérite de forms.Form et dispose d'un champ forms.FileField
   40             if form.is_valid():
   41                 print("HANDLE FILES %s" % request.FILES['file'])  # Traiter les fichiers ici !
   42                 return HttpResponseRedirect() # Que renvoyer ? faire un formulaire avec angularjs et renvoyer un Json pour faire de l'ajax
   43             else:
   44                 form = UploadIconForm()
   45                 return render_to_response('uploadicons.html', {'form' : form})

cette méthode fait partie du model pour lequel je veux ajouter une colonne. Est-il possible de faire passer l'objet request à iconprev en passant par list_display:

class FileTypeAdmin(admin.ModelAdmin):
   list_display('extension', 'mimetype', 'iconprev')

Dernière modification par azman0101 (07-10-2013 15:40:53)

Hors ligne

#2 14-10-2013 07:05:58

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : Ajouter une colonne dans l'AdminSite avec list_display

Il ne me semble pas que tu aies de POST et que le list_display de l'admin soit formé. Normalement, le list_display ne sera traité qu'après le redirect consécutif à un POST.
Du coup, tu devrais pouvoir changer le iconprev(self, request) en iconprev(self, request=None) et elif request.method == 'POST' en elif request and request.method == 'POST'

Hors ligne

  • Accueil
  • » Django-fr
  • » Ajouter une colonne dans l'AdminSite avec list_display

Pied de page des forums