码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2015-09-23 13:21:07      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

 

 

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

 

[python] view plaincopy
 
  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

 

插入数据方法如下:

 

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

 

 

总结:

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

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

标签:

原文地址:http://www.cnblogs.com/aguncn/p/4831771.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!