這可能是一個簡單的問題,但我似乎無法理解它。Django:顯示管理界面中多項至多項的列表
我在models.py中有兩個簡單模型:Service和Host。 Host.services與Service具有m2m關係。 換句話說,主機有多個服務,一個服務可以駐留在多個主機上;一個基本的m2m。
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)
現在,當我打開所有主機的列中列出的 '服務' 列中的頁面顯示等的輸出:
獲取服務
[<Service: the_service-1>, <Service: the_service-2>]
相反的:
服務
the_service-1
the_service-2 等
我到底做錯了什麼? 謝謝你閱讀我的問題。
我更新了我的答案。 – 2009-09-09 10:14:39