问题标签 [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 投票
2 回答
72808 浏览

python - django - 将列表转换回查询集

我有一些记录,我想根据计算值进行排序。在这里得到答案......就像这样:

在这样的 Profile 类上:

不幸的是,通用视图需要一个查询集对象,如果我给它一个列表,则会引发错误。

有没有办法做到这一点,返回一个查询集

或者...

我可以以某种方式将列表转换为查询集吗?在 django 文档中找不到类似的东西。

我希望不要对数据进行非规范化,但我想如果必须的话我会的。

更新/答案:

似乎获取查询集的唯一方法是您是否可以将所有逻辑放入 sql 查询中。

如果这是不可能的,(我认为)你需要对数据进行非规范化

0 投票
3 回答
13324 浏览

django - 如何获取 Django 模型中对 ForeignKey 字段具有特定值的所有对象?

我有一个外键为“父”的模型

这是FK模型

我正在尝试运行一个查询,以获取所有带有“xyz”父项的项目我什么也没得到

当我尝试:

或者:

我收到一个错误:

这样做的正确方法是什么?

0 投票
2 回答
168 浏览

django - 如何订购查询过滤器的结果?

我的视图中有这行代码,它允许我按日期显示一组项目(我还颠倒了顺序,所以最近的显示在前):

工作正常,但是,当我将order_by代码与过滤器连接时......

为什么这不起作用?也许语法不好,或者我只是不明白这应该如何工作?

0 投票
2 回答
1069 浏览

django - Django - 使用 Q 跨越空关系的查询集

考虑模型:

当我创建 C 的对象时,我确保一个对象具有 classA 或 classB 关系。

我正在寻找一个单一的查询集,它为我获取特定 fieldOfA 或特定 fieldOfB 值的 C 对象。

我试过这个,但它失败了(返回 [],尽管有有效的结果)。

我看到的问题是'|' 那就是应用。classA 和 classB 的两个不同查询集工作正常。有什么方法可以应用单个查询集来完成这项工作吗?或者更糟的是,一种合并单个查询集的方法。

0 投票
4 回答
25165 浏览

django - 如何将 2 个 Django QuerySet 合并为一个并创建一个 SELECT DISTINCT

模型.py

在我看来.py:

在我切换到 ForeignKey 之前,它适用于:

如何将这两个查询集“加入”到一个查询集并创建一个 distinct()?

谢谢!

0 投票
2 回答
2250 浏览

django - Django:为什么外键查找不自动使用pk?

我有

这有效:

但这不是:

为什么?(Django 1.0.2)

查看查询日志,它正在做着我没想到的事情!该查询产生:

但是这样做

给出这个查询

这就是我想要的,但在=我看来,这意味着它是唯一的对象。如果对象在成就列表中的任何位置,django 实际上正在执行的查询正在返回。

这是正确设置并且非常违反直觉还是我做错了什么?

0 投票
4 回答
6209 浏览

django - Django - 从每个相册中随机选择一张照片

我试图从同步器创建的数据中从每个相册中获取随机照片。模型(缩写)如下所示:

我尝试了很多不同的方法,但都没有成功。这是另一个容易的吗?

采取2:最终代码:

def 画廊(请求,模板名称='galleries.html'):

0 投票
3 回答
12828 浏览

django - 如何在 Django 查询中动态提供查找字段名称?

我想在 Django 中的模型的几个字段中查找某个字符串。理想情况下,它会类似于:

当然这行不通,因为“查找”无法解析为字段。有没有其他方法可以做到这一点?

0 投票
1 回答
667 浏览

django - 在循环中连接 Django 查询集是正确的吗?

我有一个名为 Collection 的 Django 模型,它表示项目的集合(CollectionItem)。每个集合仅包含特定类型的项目。(CollectionItem 有一个 Collection 的外键)。

我想获取特定类型的公共标记列表中的所有 CollectionItem,并按特定字段排序返回它们。这是我使用的查询代码:

我不得不想象当我有一个包含大量列表和项目的大型数据库时,这根本不会很好地扩展。在 Django 中有没有更好的方法来做到这一点?或者与我不应该太担心的其他选项相比,查询循环中涉及的低效率是否可以忽略不计?

0 投票
3 回答
7238 浏览

sql - Django annotate() 多次导致错误答案

Django 为查询集提供了很棒的新 annotate() 函数。但是,对于单个查询集中的多个注释,我无法使其正常工作。

例如,

一个游览可以包含多个游览评论和历史条目。我正在尝试了解这次巡演有多少评论和历史条目。所结果的

值将不正确。如果只有一个 annotate() 调用,则该值将是正确的。

LEFT OUTER JOIN这两个s似乎有某种乘法效应。例如,如果游览有 3 条历史记录和 3 条评论,则 9 将是两者的计数值。12 个历史记录 + 1 条评论 = 12 个值。1 条历史记录 + 0 条评论 = 1 条历史记录,0 条评论(这一条恰好返回正确的值)。

生成的 SQL 调用是:

我尝试将两个查询集的结果组合在一起,这些查询集包含一个对 annotate () 的调用,但它不能正常工作......你不能真正保证顺序是相同的。它似乎过于复杂和凌乱,所以我一直在寻找更好的东西......

谢谢你的帮助。Stackoverflow 过去用很多已经回答的问题拯救了我的屁股,但我还没有找到这个问题的答案。