##Python项目-Day53-django-model多表链接
#####下面的练习用
-
一对一关系
-
设置一对一关系
zan=models.OneToOneField(to='UserInfo',on_delete=models.CASCADE,default=1)
-
插入数据
l={ "name":"aaa" } l_id=models.Type.objects.create(**l) u={ "telephone":data["telephone"], "pub_time":datetime.now().strftime('%Y-%m-%d %H:%M:%S'), 'leixing_id':l_id.id } t={ "zan_id":u_id.id, "num":0 } print(t) f_id=models.Fabulols.objects.create(**t)
-
-
一对多关系
-
设置外键
zan=models.ForeignKey(to=UserInfo,to_field='id',on_delete=models.CASCADE,default=1)
-
插入数据
-
先插入主表的数据
u={ "telephone":data["telephone"], "leixing_id":10 } print(u) u_id=models.UserInfo.objects.create(**u)
-
再插入从表的数据
p={ "name":data["name"], "pos_uesr_id":u_id.id } print(p) p_id=models.Pos.objects.create(**p)
-
-
查询数据
-
接收客户端发送过来的值
name=json.loads(request.body)["name"]
-
根据name查询对应的用户电话号码
user_id=models.Pos.objects.filter(name=name).values('name','pos_uesr_id','pos_uesr__telephone')
-
-
-
多对多关系
-
创建一个多对多关系类(实际上不用这么做)
class ApplyPosition(models.Model): yonghu_id=models.ForeignKey(to=UserInfo,to_field='id',on_delete=models.CASCADE,) job_id=models.ForeignKey(to=job,to_field='company_id',on_delete=models.CASCADE)
-
实现添加一条简历的操作
def addResume(request): user_id=json.loads(request.body)['user_id'] company_id=json.loads(request.body)['company_id'] ApplyPosition.objects.create(yonghu_id_id=user_id,job_id_id=company_id) return HttpResponse("添加简历成功")
-
另一种方式创建多对多关系
class job(models.Model): ... #添加一个多对多外键 apply=models.ManyToManyField(UserInfo)
-
添加数据
j=job.objects.get(company_id="11782") u=UserInfo.objects.get(id=5) j.apply.add(u)
-
查询数据
j=job.objects.get(company_id="11782") print(j.apply.all())
-
删除数据
j=job.objects.get(company_id="11782") u=UserInfo.objects.get(id=5) j.apply.remove(u)
-
-