class Device(models.Model): name = models.CharField(max_length=255) model = models.ForeignKey(Model, null=True, blank=True) os = models.ForeignKey(Os, null=True, blank=True) product = models.ForeignKey(Product, null=True, blank=True) type = models.ForeignKey(Type, null=True, blank=True) site = models.ForeignKey(Site, null=True, blank=True) status = models.ForeignKey(Status, null=True, blank=True) default_gw = models.IPAddressField(null=True, blank=True) mngmnt_gw = models.IPAddressField(null=True, blank=True) ntpserver = models.IPAddressField(null=True, blank=True) rack_num = models.PositiveIntegerField(null=True, blank=True) unit_height = models.PositiveIntegerField(default=1, blank=True) row_num = models.PositiveIntegerField(null=True, blank=True) serial = models.CharField(max_length=255, blank=True) barcode = models.CharField(max_length=255, blank=True) cpu_num = models.PositiveIntegerField(null=True, blank=True) cpu_speed = models.PositiveIntegerField(null=True, blank=True) class Meta: pass class Admin: list_display = ('name','model','os','product','type','site','default_gw','mngmnt_gw','ntpserver','status','rack_num','unit_height','serial','barcode') list_filter = ('site','product','type','os','model','status') search_fields = ('name','model','os','product','type','site','default_gw','mngmnt_gw','ntpserver','status') fields = ( (None, { 'fields': ('name','model','os','product','type','site','default_gw','mngmnt_gw','ntpserver','status') }), ('Asset Information', { 'classes': 'collapse', 'fields': ('rack_num','unit_height','serial','barcode') }), ) def __str__(self): return self.name class Interface(models.Model): name = models.CharField(max_length=20, core=True, blank=True) ip = models.IPAddressField(blank=True) netmask = models.IPAddressField(blank=True) macaddress = models.CharField(max_length=40, blank=True) speed = models.IntegerField(null=True, blank=True) duplex = models.CharField(max_length=4, blank=True) cable_color = models.CharField(max_length=30, blank=True) device = models.ForeignKey(Device, edit_inline=models.STACKED, num_in_admin=3) class Meta: pass def __str__(self): return '%s' % (self.ip)