Vous n'êtes pas identifié(e).
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
```
def maintenus(self):
return [unicode(o) for o in self.maintenance_set.all()]
```
Hors ligne
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