问题标签 [django-queryset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
22882 浏览

python - 从不同类别获取最新对象的 Django 查询

我有两个模型AB. 所有B对象都有一个对象的外键A。给定一组A对象,无论如何都可以使用 ORM 来获取一组B对象,其中包含为每个对象创建的最新A对象。

这是一个简化的示例:

因此,我正在寻找一个查询,该查询返回在美国 Anytown 的每个面包店中烘焙的最新蛋糕。

0 投票
1 回答
1763 浏览

django - 如何在 Django 中聚合单个查询集?

简短描述:给定一个查询集myQueryset,如何在max("myfield")不实际检索所有行并max在 python 中执行的情况下进行选择?

我能想到的最好的是max([r["myfield"] for r in myQueryset.values("myfield")]),如果有数百万行,这不是很好。

详细描述:假设我的 Django 应用程序中有两个模型,City 和 Country。City 对 Country 有一个外键字段:

这意味着 Country 实例.cities可用。假设我现在想为 Country 编写一个名为highest_city_population返回最大城市人口的方法。来自 LINQ 背景,我的本能是尝试myCountry.cities.max('population')或类似的东西,但这是不可能的。

0 投票
1 回答
1224 浏览

django - Django QuerySet API:如何加入 iexact 和 icontains?

我有这个加入:

这是网站

如果您尝试姓氏:Abbas 和名字:Amr,它会告诉您 amr abbas 有 1 个同学。

但是,如果您仅尝试 First name,则表明数据库中没有名为 amr 的律师(显然有)。

如果我更改(last__iexact=last_name)为,(last__icontains=last_name)则将姓氏留空可以正常工作并找到 amr。

但是last__icontains=last_name如果你搜索“collin”,你也会得到“collins”和“collingwood”,这不是我想要的。

你知道我可以如何使用iexact它,如果它是空白的,也可以忽略它吗?

谢谢

这是视图函数:

0 投票
2 回答
199 浏览

django - django,一种查询不同模型的好方法

假设我有一个这样的模型:

因此,在数据库中,我有 Foo 具有相同名称字段但类型不同的对象,即:

我将使用这些信息来生成一个 html 选择表单,显示所有可能的(不同的)名称,所以最后我的选择表单将显示如下:

如何获得不同值的列表name

0 投票
2 回答
1063 浏览

django - 根据列内容检索 Django 查询集中的唯一结果

我不确定标题是否有意义,但这是问题所在。

背景:我想跟踪哪些学生进出教室,以便在任何给定时间我都可以知道谁在教室里。我还想跟踪,例如,学生进入教室的次数。这是一个假设的例子,非常接近我想要实现的目标。

我做了一个表教室,每个条目都有一个学生(外键)、操作(进入、离开)和日期。

我的问题是如何获取当前在里面的学生(即他们的输入操作的日期晚于他们的离开操作的日期,或者没有离开日期),以及如何指定一个日期范围来获取学生当时在教室里。


编辑:更好的想法我还应该补充一点,有不止一个教室。

我的第一次尝试是这样的:

如果action== 1 输入,则 0 输出。

然而,一旦学生离开教室并重新进入,这就会提供错误的数据。她在查询集中列出了两次students_now,因为有两个“进入”和一个“离开”。此外,我无法检查特定日期范围以查看哪些学生的入学日期晚于他们的离开日期。

0 投票
5 回答
28994 浏览

django - 使用 django.db.connection.queries

我有一个运行大量 SQL 语句的 Python/Django 应用程序。出于调试目的,我想我应该为我创建一个简单的视图,它只列出所有已运行的 SQL 语句。

根据文档,这段代码应该足以做到这一点:

只要 DEBUG 为 True。

但是,这并没有给我任何东西。DEBUG 肯定设置为 True。这个 connection.queries 存储在什么上下文中?我的意思是,我应该能够执行一个执行大量 SQL 语句的页面,然后切换到我创建的http://myserver/sql视图并在那里查看那些 SQL 语句,对吗?当然使用相同的浏览器会话......

我确实检查了 db.reset_queries() 是否在代码中的任何地方运行,似乎不是。

任何想法为什么 connection.queries 总是空的?

0 投票
3 回答
1650 浏览

python - 在 Django 中更新查询集中的一堆记录的最快方法

我有一个包含几百万条记录的查询集。我需要更新一个布尔值,从根本上切换它,以便在数据库表中重置值。最快的方法是什么?

我尝试遍历查询集并更新和保存每条记录,这显然需要很长时间?我们需要非常快地做到这一点,有什么建议吗?

0 投票
3 回答
23399 浏览

django - 是否可以使用 Django 的 QuerySet.values_list 引用属性?

我的 Django 模型上有一个自定义属性,它返回一个人的全名:

当我创建查询时,我想引用该属性。例如:

不幸的是,Django 产生以下 FieldError:

FieldError:无法将关键字“full_name”解析为字段

长话短说,是否可以通过 values_list() 方法访问自定义属性?如果没有,是否有人对如何最好地解决此问题有任何建议?

0 投票
3 回答
8682 浏览

django - 像 QuerySet 一样过滤 Django Haystack 结果?

是否可以将 Django Haystack 搜索与“内置”QuerySet 过滤操作相结合,特别是使用 SearchQuerySet 不支持的 Q() 实例和查找类型进行过滤?以任一顺序:

或者

浏览 Django Haystack 文档并没有给出如何做到这一点的任何指示。

0 投票
8 回答
42351 浏览

django - 在不破坏 DRY 的情况下自定义 QuerySet 和 Manager?

我正在尝试找到一种在不破坏 DRY的情况下实现自定义QuerySet和自定义的方法。Manager这是我到目前为止所拥有的:

这工作正常,直到我做这样的事情:

这会立即破坏所有内容,因为 与QuerySet没有相同的方法Manager。我尝试创建一个自定义QuerySet类,并在 中实现它MyInquiryManager,但我最终复制了我所有的方法定义。

我还发现这个片段有效,但我需要将额外的参数传递给for_user它,因为它严重依赖于重新定义get_query_set.

有没有办法在不重新定义我在子类QuerySetManager子类中的所有方法的情况下做到这一点?