考虑到以下型号:
class BaseMachine(models.Model)
fqdn = models.CharField(max_length=150)
cpus = models.IntegerField()
memory = models.IntegerField()
class Meta:
abstract = True
class PhysicalMachine(BaseMachine)
location = models.CharField(max_length=150)
class VirtualMachine(BaseMachine)
hypervisor = models.CharField(max_length=5)
class Sysadmin(models.Model):
name = models.CharField(max_length=100)
admin_of = models.ManyToManyField...
在这个例子中,我想把1个系统管理员与许多机器联系起来——不管是实例、物理机器还是虚拟机。我知道我不能有一个抽象基的manytomy,但是我想知道是否有更好的方法来实现这一点,而不仅仅是在sysadmin上为每个模型单独设置一个manytomy字段?在这个小例子中,这是可以容忍的,但是如果你有两个以上的子类,或者如果有其他模型需要与“基类”相关,那么它就变得更需要管理了。在
谢谢:)
您是否考虑过使用contenttypes框架的generic relationship?在
编辑:我已经更新了源代码,因此一个管理员可以有多个计算机,一个计算机可以有多个管理员:
相关问题 更多 >
编程相关推荐