多对多数据库的建立

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()

 

posted on 2018-07-24 21:33  python我的最爱  阅读(149)  评论(0编辑  收藏  举报