Cela peut être une question simple, mais je ne peux pas sembler le saisir.Django: afficher la liste de beaucoup à plusieurs éléments dans l'interface d'administration
J'ai deux modèles simples dans models.py: Service et Host. Host.services a une relation m2m avec Service. En d'autres termes, un hôte dispose de plusieurs services et un service peut résider sur plusieurs hôtes; un m2m basique.
models.py
class Service(models.Model):
servicename = models.CharField(max_length=50)
def __unicode__(self):
return self.servicename
class Admin:
pass
class Host(models.Model):
#...
hostname = models.CharField(max_length=200)
services = models.ManyToManyField(Service)
#...
def get_services(self):
return self.services.all()
def __unicode__(self):
return self.hostname
class Admin:
pass
admin.py
from cmdb.hosts.models import Host
from django.contrib import admin
class HostAdmin(admin.ModelAdmin):
list_display = ('get_services',)
admin.site.register(Host, HostAdmin)
Maintenant, quand j'ouvre la page où toutes les colonnes de l'hôte sont répertoriées la colonne 'service' affiche la sortie comme:
Obtenir des services
[<Service: the_service-1>, <Service: the_service-2>]
Au lieu de:
services
the_service-1
the_service-2 etc.
Qu'est-ce que je fais mal? Merci d'avoir lu ma question.
J'ai mis à jour ma réponse. –