使用QuerySet删除数据表

数据库记录
在这里插入图片描述

删除数据

1、删除全部数据:all()与delete()

导出数据库脚本 - babies.sql
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入python manage.py shell指令,开启Shell模式
在这里插入图片描述
输入from commodity.models import Types
Types.objects.all().delete(),删除全部记录
在这里插入图片描述
在这里插入图片描述
重新传入数据
右击数据库选择运行sql文件
在这里插入图片描述
第二种导入方法
导入数据到表:python manage.py loaddata commodity_types_data.json

2、删除一行数据:get()与delete()

执行命令:Types.objects.get(id=1).delete(),删除id为1的记录
在这里插入图片描述
在这里插入图片描述

3、删除多行数据:filter()与delete()

删除全部“儿童用品”

执行命令:Types.objects.filter(firsts=‘儿童用品’).delete()
在这里插入图片描述
在这里插入图片描述

4、删除有外键的数据:delete()

在index模块的models.py中定义以下2个模型类

from django.db import models

class PersonInfo(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=20)
age= models.IntegerField()
hireDate = models.DateField()

def __str__(self):
    return  self.name
class Meta:
    verbose_name ='人员信息'

class Vocation(models.Model):
id = models.AutoField(primary_key=True)
job = models.CharField(max_length=20)
title = models.CharField(max_length=20)
payment = models.IntegerField(null=True,blank=True)
name= models.ForeignKey(PersonInfo,on_delete=models.CASCADE,related_name=‘ps’)

def __str__(self):
    return  str(self.id)
class Meta:
    verbose_name ='职业信息'

在这里插入图片描述
输入exit()退出

执行数据迁移命令:python manage.py makemigrations

在这里插入图片描述
执行数据迁移命令:python manage.py migrate index 0001_initial
在这里插入图片描述
查看生成的两张表:index_personinfo和index_vocation

在这里插入图片描述

(2)为index_personinfo准备测试数据

python manage.py shell
添加数据命令
在这里插入图片描述
在这里插入图片描述

(3)为index_vocation准备测试数据

在这里插入图片描述
在这里插入图片描述

上面我的不好看,下面是正确步骤
在这里插入图片描述
在这里插入图片描述

(4)级联删除id=1的张玲

执行命令:PersonInfo.objects.get(id=1).delete()
在这里插入图片描述
删除成功,总共删除了2条数据,1条是index_personinfo表的记录,1条是index_vocation表的记

删除结果
在这里插入图片描述
在这里插入图片描述


版权声明:本文为zxd4088原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。