15.更新数据

目录

1  更新单个数据

2  批量更新数据

3  制作更新链接


1  更新单个数据

大致的步骤是这样的

  • 通过get查询数据,拿到要改的对象
  • 通过 对象.属性 方式修改数据(创建数据的第二个方法)
  • 通过 对象.save()保存数据

我们现在改一下 id为1 的书的 price为25(之前是20)

首先我们拿到这个书的对象

然后改

最后存

刷新页面后我们发现变为了25

2  批量更新数据

大致步骤是这样的

  • 通过查询的方式,拿到多个数据的一个总对象(多个数据会返回Queryset类型)
  • 通过 对象.update(属性=值) 更新数据

我们现在要将 id=4与id=5 的retail_price都变为100

首先我们获取对象

然后使用update

update会返回更改数据的个数

我们刷新一下页面,发现最后两行的retail_price都变为了100

3  制作更新链接

我们上一章将此处的更新链接设置为空,现在我们来做这个链接

首先加入一个路由

之后在book_list.html中给更新加上链接,在这里我们通过查询字符串的方式得到我们点击的链接的id

然后我们写上传的页面 upload.html,这里写input中value的目的是给一个默认值,后面的required规定input不能为空

最后我们写更新的视图,我们先看get,首先通过查询字符串拿到id,之后根据id进行查找book对象,最后给到update_book.html

下面我们再看post,首先从我们输入的内容中接到各属性的值,之后根据上面全局变量id进行查询,查完了改,改完了存,存完了做一个重定向返回 book/book_list 这个路由

使用起来是这样的,首先进到我们图书的展示页,然后点击更新

点击更新之后会转到更新页

我们现在将price改为50,然后点击更新

发现已经成功更新

我们再改一个,现在我们想把id为3的book_name改成另一个名字,我们在这里点击更新

发现同样可以成功修改

除了使用查询字符串还可以使用路由转换器传递id。视频中让前两行的input不可编辑,我们给input disable属性就可以了

视频P21中使用了路由转换器的方法,并且是使用form表单进入不同的路由进行更改 2021最新版Django全套视频(django框架快速上手)_Python全栈_哔哩哔哩_bilibili ,有兴趣可以看一下

路由转换器的方法就是这样的

还是通过链接进入该路由,进入后就把book_id传给视图了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值