-
设置外键
usertype是主表,userinfo是从表user_type=models.ForeignKey(to="usertype",to_field="id",default=1,on_delete= models.CASCADE)
- models.CASCADE,删除关联数据,与之关联也删除
- models.DO_NOTHING,删除关联数据,引发错误IntegrityError
- models.PROTECT,删除关联数据,引发错误ProtectedError
- models.SET-NULL,删除关联数据,与之关联的值设置为null(前提该字段null为true)
- models.SET_DEFAULT,删除关联数据,与之关联设置为默认值
-
查询数据
#正向查询 users=models.userinfo.objects.all().values('telephone','user_type__name') #逆向查询 t=models.usertype.objects.get(name='vip') users=t.userinfo_set.all()
-
添加数据
#先查出对象 obj_type=models.Type.objects.filter(name='vip')[0] #直接添加数据 user={ "telephone":"123", "password":"123", "user_type":obj_type } res=models.userinfo.objects.create(**user)
-
创建多对多关系表
# 模拟多对多关系:用户-投递-职位 class applyposition(models.Model): id = models.AutoField(primary_key=True) # 自动创建一个id列,id为主键、自增长 uobj = models.ForeignKey(to=userinfo,to_field='id',on_delete=True) pobj = models.ForeignKey(to="position",to_field='id',on_delete=True) publish_time=models.DateTimeField(auto_now_add=True,null=True)
django多表查询
猜你喜欢
转载自blog.csdn.net/qq_42650983/article/details/82972276
今日推荐
周排行