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

来源:互联网 发布:linux vi 全选复制 编辑:程序博客网 时间:2024/05/22 04:56

用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,说明记录存在

原创粉丝点击