您的位置:首页 > 数据库

Django查询数据库方法get和filter的区别

2017-09-24 20:09 543 查看
用get方法查询的时候,查询不到内容的时候会抛出异常,同样查询结果多余1条的时候也会抛出异常

Exp:fresh.models.DoesNotExist: Cart matching query does not exist.

filer若是查询不到数据,会返回一个空的查询集,[]  type类型是:Queryset。查询到多余一条的时候会返回一个包含多个对象的查询集。

因此可以用filter来判断数据库中是否存在某条记录:

cart = Cart.objects.filter(user=user, goods=good)
if len(cart)>0:
cart[0].number = cart[0].number+int(amount)
cart[0].save()
else:
newCart = Cart()
newCart.user=user
newCart.goods=good
newCart.number=int(amount)
newCart.save()

从Cart表查询,如果不存在这条记录,则返回[ ],所以len(cart)=0,因此如果len(cart)>0,说明记录存在
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  django filter get