class Building(models.Model):
name = models.CharField(max_length=100)
class Service(models.Model):
name = models.CharField(max_length=100)
uf = models.CharField(max_length=5)
building = models.ForeignKey(Building)
class User(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
service = models.ForeignKey(Service)
class HardwareType(models.Model):
name = models.CharField(max_length=100)
info_fields = models.CommaSeparatedIntegerField(max_length=500)
class HardwareBrand(models.Model):
name = models.CharField(max_length=100)
class HardwareReference(models.Model):
name = models.CharField(max_length=100)
brand = models.ForeignKey(HardwareBrand)
type = models.ForeignKey(HardwareType)
class HardwareInfoField(models.Model):
name = models.CharField(max_length=100)
type = models.CharField(max_length=100)
extra = models.CharField(max_length=500)
class Hardware(models.Model):
reference = models.ForeignKey(HardwareReference)
infos = models.ManyToManyField(HardwareInfoField, through='HardwareInfoValue')
class HardwareInfoValue(models.Model):
hardware = models.ForeignKey(Hardware)
info_field = models.ForeignKey(HardwareInfoField)
value = models.CharField(max_length=100)