2013-01-23 55 views
2

我有几个模型,我希望显示在一个管理页面中。这里是我的模型:Django管理员将两张表合并为一个页面

class Server(models.Model): 
    type = models.CharField(max_length=44, choices=TYPES) 
    number = models.CharField(max_length=3) 
    environment = models.CharField(max_length=7, choices=ENVIRONMENTS) 
    location = models.CharField(max_length=3, choices=LOCATONS) 
    cpu = models.PositiveSmallIntegerField() 
    ram = models.PositiveIntegerField() 
    os = models.CharField(max_length=24, choices=OSs, default='CentOS 6.3') 
    eth0_ip = models.IPAddressField(unique=True) 
    eth0_mac = models.CharField(max_length=17, unique=True, null=True, 
          blank=True) 
    confluence_page = models.URLField(null=True, blank=True) 

    class Meta: 
     abstract = True 

    def __unicode__(self): 
     return "%s%s.%s" % (self.type, self.number, self.environment) 

class Real(Server): 
    manufacturer = models.CharField(max_length=20, choices=MANUFACTURERS_REAL) 
    rack = models.CharField(max_length=6, null=True, blank=True) 
    rack_u = models.PositiveSmallIntegerField(null=True, blank=True) 
    serial_num = models.CharField(max_length=8, unique=True, null=True, 
           blank=True) 

class Virtual(Server): 
    manufacturer = models.CharField(max_length=20, 
           choices=MANUFACTURERS_VIRTUAL) 
    host_id = models.ForeignKey(Real) 

如果有反正对我来说,创建/扩展什么我不知道是/任何一个管理界面,将允许从两个数据库中查看所有对象。例如,我可以进入管理员,然后当我点击应用程序名时,我得到了两个数据库的change_list,当我选择一个特定的对象时,说一个虚拟的,我将获得管理界面来创建或更改虚拟对象。

如果我不清楚,请让我知道,我会尽我所能来解释不同,更清楚。

回答