Django-fr

Forum

#1 13-04-2015 00:25:29

makayabou
Membre
Inscription : 01-02-2011
Messages : 9

affichage des query set [résolu]

Bonjour,

je ne parviens pas à afficher correctement une liste d'objets Maintenance qui s'appliquent à des Ordis, dans mon interface d'administration.

J'ai dans mes models.py, la class Maintenance, définie comme suit:

class Maintenance(models.Model):
    ordi = models.ForeignKey(Ordi)
    def __unicode__(self):
        return self.titre + " du " +self.date_sortie.strftime('%m/%d/%Y')

Toujours, dans models.py, plus haut dans le code, est définie la classe Ordi:

class Ordi(models.Model):
    def maintenus(self):
        ordis_maintenus = self.maintenance_set.all()
    def __unicode__(self):
        return 'ordi '+unicode(self.id)+' - '+self.renvoios()

Dans admin.py, j'ai OrdiAdmin:

class OrdiAdmin(admin.ModelAdmin):
        
    list_display = ('maintenus','id',)

L'affichage dans la vue admin de ordis donne

[<Maintenance: Reconditionnement du 04/10/2015>]

.
Comment puis-je obtenir l'affichage simple défini dans __unicode__ de Maintenance ??

Si j'écris

def maintenus(self):
        ordis_maintenus = self.maintenance_set.all()
        for o in ordis_maintenus:
            return o.__unicode__

L'affiche donne:

<bound method Maintenance.__unicode__ of <Maintenance: Reconditionnement du 04/10/2015>>

Je tourne le problème dans tous les sens, mais en vain...

Merci de votre aide.

Dernière modification par makayabou (13-04-2015 13:44:35)

Hors ligne

#2 13-04-2015 12:02:56

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

Re : affichage des query set [résolu]

```
def maintenus(self):
    return [unicode(o) for o in self.maintenance_set.all()]
```

Hors ligne

#3 13-04-2015 13:42:50

makayabou
Membre
Inscription : 01-02-2011
Messages : 9

Re : affichage des query set [résolu]

Bonjour,

merci pour la réponse.
J'ai eu un résultat encore mieux avec

def maintenus(self):
        return ', '.join([unicode(u) for u in self.maintenance_set.all()])

Dernière modification par makayabou (13-04-2015 13:43:35)

Hors ligne

Pied de page des forums