如何在DJANGO里,向有外键(一对多和多对多)的DB里插入数据?

需要插入的数据表结构如下:

  1. class UserInfo(models.Model):
  2. user_id =models.AutoField(primary_key=True)
  3. user_name=models.CharField(max_length=20,unique=True)
  4. depart=models.ForeignKey(DepartmentInfo)
  5. role=models.ManyToManyField(Role)

*注:从上述类中可以看出UserInfo除了一般的表项外,还有有一个外键,和一个多对多的field

插入数据方法如下:

  1. d1=DepartmentInfo.objects.get(depart_id=1) #  d1表示UserInfo的外键数据
  2. r1=Role.objects.get(role_name=role)        #  r1表示UserInfo的多对多数据
  3. u1=UserInfo(user_name=name,user_pwd=password,sex=sex,mobileno=mobile,email=email,depart=d1)
  4. u1.save()
  5. u1.role.add(r1)
  6. u1.save()

总结:

    • 普通数据项:直接插入
    • 外键数据项:先获取要插入的外键,然后和普通想一起插入
    • 多对多数据项:获取要插入的多对多数据项,待表中普通数据项和外键数据项save后,使用.add方法加入
      • PS,如果判断更新还是插入呢?
      • obj, created = DeployPool.objects.update_or_create(    aa=aa)print obj, created
上一篇:Windows之文件夹中打开PowerShell


下一篇:centos5.5 快速安装mysql