栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python django orm查询和增加 filter和get不同使用方法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python django orm查询和增加 filter和get不同使用方法

今天在学习中,视频用的get取的单条数据,之后再用对象的属性取修改,最后再用save保存。

例如

>>> b2 = Book.objects.get(id=1)
>>> b2.price = 22
>>> b2.save()
>>> b2 = Book.objects.get(id=1)
>>> b2

>>>

但我想尝试能不能用filter的update方法去修改,于是进行了一些尝试,总结的来说,如果你用filrer去获取数据,他返回的是Queey容器对象,所以你的html页面不能直接用定义的对象去获取属性,必须要用for in 这个对象,用循环+属性值去拿。

举个错误的例子:
view.py:
son_page=models.news_inr_test.objects.filter(id=page)

html:

id

上面的方法是错误的,页面无法拿到数据,拿的是空值。
正确例子:
html:
{% for son_page1 in son_page %}

id

{% endfor %} 在html中叠出for in ,再用.属性的方法取值

这样做和get有什么不同?

主要是最后对数据修改的时候,能用filter对象的update方法,不用get中的修改方法(因为get保存需要用到save保存,怕忘记)。

对比一下最后修改的过程中的代码:

get方法修改数据:
update_book = Book.objects.get(id=id)

update_book.price = request.POST.get('price')

update_book.market_price = request.POST.get('market_price')

update_book.save()
filter修改数据方法:
这里只给出views中的代码,记得html中用for in 获取对象。

son_page=models.news_inr_test.objects.filter(id=page)

update_time=request.POST['time']
update_price=request.POST['price']

son_page.update(time=update_time)
son_page.update(price=update_price)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/840816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号