天天看点

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

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

class userinfo(models.model):  

    user_id =models.autofield(primary_key=true)  

    user_name=models.charfield(max_length=20,unique=true)   

    depart=models.foreignkey(departmentinfo)  

    role=models.manytomanyfield(role)  

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

插入数据方法如下:

        d1=departmentinfo.objects.get(depart_id=1) #  d1表示userinfo的外键数据  

        r1=role.objects.get(role_name=role)        #  r1表示userinfo的多对多数据  

        u1=userinfo(user_name=name,user_pwd=password,sex=sex,mobileno=mobile,email=email,depart=d1)  

        u1.save()  

        u1.role.add(r1)  

总结:

  普通数据项:直接插入

  外键数据项:先获取要插入的外键,然后和普通想一起插入

  多对多数据项:获取要插入的多对多数据项,待表中普通数据项和外键数据项save后,使用.add方法加入

ps,如果判断更新还是插入呢?