首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django模型层GET和FILTER的区别

Django模型层GET和FILTER的区别
EN

Stack Overflow用户
提问于 2009-10-09 00:21:12
回答 1查看 9.3K关注 0票数 20

有什么区别,请用通俗易懂的术语举例说明。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-09 00:50:56

我不知道你是否真的需要一个例子,这很简单:

  • 如果您知道它是一个与您的查询匹配的对象,请使用get。如果有多个对象,它将失败。
  • 否则请使用filter,它将为您提供对象列表。

更准确地说:

  • MyTable.objects.get(id=x).whatever为您提供对象的whatever属性。

如果找到多个对象,则get()将引发MultipleObjectsReturned。MultipleObjectsReturned异常是模型类的一个属性。

如果没有找到给定参数的对象,get()将引发DoesNotExist异常。这个异常也是model类的一个属性。

  • MyTable.objects.filter(somecolumn=x)不仅可以用作列表,还可以像MyTable.objects.filter(somecolumn=x).order_by('date')一样再次查询它。
  • 原因是它实际上不是一个列表,而是一个查询对象。您可以像遍历列表一样遍历它:for obj in MyTable.objects.filter(somecolumn=x)
票数 48
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1541249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档