3π
EDIT: I have updated the soultion, so one admin can have many machines and one machine can have many admins:
class Sysadmin(models.Model):
name = models.CharField(max_length=100)
class BaseMachine(models.Model):
fqdn = models.CharField(max_length=150)
cpus = models.IntegerField()
memory = models.IntegerField()
admins = models.ManyToManyField(Sysadmin)
class Meta:
abstract = True
class PhysicalMachine(BaseMachine):
location = models.CharField(max_length=150)
class VirtualMachine(BaseMachine):
hypervisor = models.CharField(max_length=5)
In [1]: s1 = Sysadmin(name='mike')
In [2]: s1.save()
In [3]: m1 = PhysicalMachine(fqdn='test', cpus=1, memory=20, location='test')
In [4]: m1.save()
In [5]: m1.admins.add(s1)
In [6]: m1.save()
In [7]: m2 = VirtualMachine(fqdn='test', cpus=1, memory=20, hypervisor='test')
In [8]: m2.save()
In [9]: m2.admins.add(s1)
In [10]: m2.save()
In [11]: m1.admins.all()
Out[11]: [<Sysadmin: Sysadmin object>]
In [12]: m2.admins.all()
Out[12]: [<Sysadmin: Sysadmin object>]
π€Dominik Szopa
2π
Have you considered a generic relationship using the contenttypes framework?
π€Manoj Govindan
- [Django]-Visual Report for Code Coverage in Django
- [Django]-How to send two variables with html as a JSON in Django?
- [Django]-Avoid makemigrations to re-create date field
Source:stackexchange.com