多对多数据库的建立
class Host(models.Model):
nid = models.AutoField(primary_key=True) #自增id
hostname = models.CharField(max_length=32, db_index=True)
ip = models.GenericIPAddressField(db_index=True)
port = models.IntegerField(max_length=32)
b = models.ForeignKey(to='Business', to_field='id', on_delete=models.CASCADE)class Application(models.Model):
name = models.CharField(max_length=32, null=True)
r = models.ManyToManyField('Host')
通过models.ManyToManyField 创立 Host 与 Application的连接
v1 = models.Application.object.all()
v1.name
for i in v1.r.all():
i.hostname
增加:
obj = models.Application.object.create(name)
obj.r.add(hostname)
改:
obj = models.Application.object.get(id=nid)
obj.name = name
obj.r.set(hostname)
删
obj = models.Application.object.get(id=nid)
models.Application.object.delete(id=nid)
obj.r.clear()