Django的ORM操作示例

来源:互联网 发布:excel同列不同数据分列 编辑:程序博客网 时间:2024/05/22 15:33

查找:

#子表查询母表,找到红球对应的颜色
#写法1:
print(models.Ball.objects.get(description="红球").color.colors) #返回红,通过子表查询母表,写法:"子表对象.母表表名的小写.母表字段名" ;通过Ball表查到description为"红球",查找到对应colors#写法2,反向从母表入手:print(models.Colors.objects.get(ball__description="红球").colors) #返回红,通过子表查询母表,但形式上是从母表对象自身直接获取字段,写法:"母表.objects.get(子表名小写__子表字段="xxx").母表字段名" ;效果和上边完全一致,另一种形式

增加:

#增添数据的三种写法:#写法1:color_obj=models.Colors.objects.create(colors="")models.Ball.objects.create(color=color_obj,description="黑球")#写法1补充:color_id=models.Colors.objects.create(colors="").idmodels.Ball.objects.create(color_id=color_id,description="黑球")#写法2:color_obj=models.Colors.objects.create(colors="")ball_obj=models.Ball(color=color_obj,description="黑球")ball_obj.save()#写法3(字典导入):color_obj=models.Colors.objects.create(colors="")ball_dic={'description':"黑球"}models.Ball.objects.create(color=color_obj,**ball_dic)

更新:

#更新一条数据color_obj=models.Colors.objects.get(colors="")color_obj.colors=""color_obj.save()#更新多条数据,把满足条件的球的description都变为灰球#写法1:models.Ball.objects.filter(color__colors="红").update(description="灰球")#写法2:up_dic={"description":"灰球"}models.Ball.objects.filter(id__gt=0).update(**up_dic)

删除:

models.Ball.objects.get(description="灰球").delete() #对象和QuerySet都有方法delete()models.Colors.objects.filter(colors="").delete()

models.Colors.objects.all().delete() #清空一张表

0 0
原创粉丝点击