Django模型层中GET与FILTER的区别

2024-09-27 04:27:44 发布

您现在位置:Python中文网/ 问答频道 /正文

有什么区别,请用外行的话举例说明。谢谢!


Tags: 区别外行
1条回答
网友
1楼 · 发布于 2024-09-27 04:27:44

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

  • 如果知道有一个对象与查询匹配,请使用get。如果不止一个,它就会失败。
  • 否则使用filter,它会给您一个对象列表。

更准确地说:

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

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

get()如果未找到 给定参数。此异常也是模型类的属性。

  • MyTable.objects.filter(somecolumn=x)不仅可用作列表,还可以再次查询它,例如MyTable.objects.filter(somecolumn=x).order_by('date')
  • 原因是它实际上不是一个列表,而是一个查询对象。您可以像遍历列表一样遍历它:for obj in MyTable.objects.filter(somecolumn=x)

相关问题 更多 >

    热门问题