问题标签 [django-annotate]

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 投票
0 回答
229 浏览

django - 如何按种类对作者的书籍注释进行分组?

我正在玩书/作者 django 文档。

有没有办法从作者那里获取按数组 agg 中的种类分组的书籍?(pgsql)

以下查询是正确的,但我需要来自 authors 表的信息。 Books.objects.values('kind').annotate(rating_min=Min('rating'),.. Etc.

我可以获得按种类分组的作者书籍评级范围吗?

Author.objects.values('book__kind'). annotate(rating_min=Min('book__rating'))

期待类似的东西

任何想法将两者结合起来?

0 投票
1 回答
914 浏览

python - Django注释,将多个相关值组合到同一个实例上

我有一个具有以下模型的 django 应用程序:

多个Person实例可以同时处理同一个作业。我有一个Job查询集,并且正在尝试注释或通过其他方法将具有该作业的每个人的姓名附加到查询集中的每个项目上。我希望能够遍历查询集并获取这些名称,而无需对每个项目进行额外的查询。我得到的最接近的是以下内容:

这将按照我的意愿将名称存储在 Job 实例上;但是,如果一个作业中有多个人,则查询集将包含同一个作业的多个副本,每个副本都有一个人的名字。相反,我只需要查询集中给定 Job 的一个实例,它包含其中所有人的姓名。我不在乎这些值是如何组合和存储的;列表、分隔字符字段或任何其他标准数据类型都可以。

我正在使用 Django 2.1 和 Postgres 10.3。我强烈希望不使用任何 Postgres 特定功能。

0 投票
1 回答
1304 浏览

django - Django注释平均查询不显示小数位

我正在使用 Django,我正在对某些列值取平均值,但是结果被四舍五入,我想将其设为小数点后一位或两位。我的目标是看到结果看起来像3.5而不是4.

我的模型已命名Application,并且列具有 IntegerField 模型类型。我的数据库是 PostgreSQL。

这是我当前用来获取列值平均值的查询:

我已经尝试过玩FloatFields,但也许我做错了。

有什么建议么?

提前致谢!

编辑:这是我的列模型。

0 投票
1 回答
707 浏览

python - Django注解对另一个注解有副作用

我遇到了一个问题,向 QuerySet 添加注释会更改先前注释的结果。

这是(简化的)设置:

用稀有 7 个单位对玩家进行注释效果很好:

以上返回的值rarity7_count是正确的。

如果我添加以下附加注释,则不再是这种情况:

注意rarity7_count值是如何变化的——这些值不再正确!gear_count但是, 的值是正确的。

这是为什么?如何在不相互干扰的情况下让两个注释都工作?我已经尝试了各种各样的事情,目前不知道如何做到这一点。

0 投票
1 回答
603 浏览

django - 如何在 Django 中创建引用两个相关模型的注释

当一个相关对象上的字段值小于另一个相关对象上的字段值时,我正在尝试向 QuerySet 添加注释,该注释为 True/False。

以下是一些模型示例:

使用上述模型,随着机器人的配置或食堂级别的变化,我们会创建新的记录并保存历史记录。

我想做的是向机器人查询集添加一个注释,说明机器人的食堂是否被认为是空的(机器人的最新 CanteenLevel.gallons 小于机器人的最新 Configuration.canteen_empty_level)。

目的是允许使用 QuerySet 中的注释进行这样的语句:

我在注释中尝试过这样的事情:

但显然“<=”运算符是不允许的。

我也试过这个:

但是你不能在获取一个 QuerySet 之后进行过滤。

任何帮助,将不胜感激!

0 投票
0 回答
39 浏览

django - 注释的返回类型

我想获取为数据库中的每个项目下第一个订单的日期。

如果我使用这个:

这将只给出已订购物品的日期。

如果我使用这个:

这为所有项目提供了所需的日期(第一次订购日期),但我无法使用“str”类型。

任何人都可以帮忙吗?我的变量rae:

0 投票
1 回答
219 浏览

django - 如何使用来自相关模型的新信息字段注释查询集?

我有一个模型,其中一个Vehicle表有更多Wheels表。我试图在单个字段中显示车辆和相关车轮表中第一个车轮的信息。我已经看到该F功能可能很有用,但我找不到正确的配置以使其正常工作。这些表通过另一个名为的字段相关联,该字段colour在表中声明为外键Wheels

我想要这条线

返回每辆车的第一个车轮名称列表,以便我可以遍历它并将其显示在表格中。

0 投票
1 回答
95 浏览

django - Django Annotate - 如何列出自我实例?

我正在尝试进行 Django 注释,并希望通过过滤字段来列出一些对象实例。

我有两个模型,即CategoryArticle。这个Category模型有一个字段叫做super_category选择字段,coices 是“ACADEMIC, OTHER”

现在,这是我目前的注释结果:

对此的查询:

我想做的是,将类别添加到结果中

所以最后,我想要这样的东西:

现在,由于附加的“类别”与我要注释的对象类型相同,我真的不知道该怎么做。

编辑

我正在使用如下序列化程序:

但请注意,我没有SuperCategory模型。

0 投票
0 回答
58 浏览

python - 注释字段是 str 而不是 datetime.datetime

例子

我正在尝试使用来自相关模型的数据来注释对象DateTimeField

sqlite3我在默认本地数据库和MySQL(with mysqlclient)之间交替。SQLite 工作,MySQL 崩溃。

原因如下:两个数据库的编译器

返回 int 和 string 元组列表的列表,如下所示:

SQLite

MySQL

现在,当 SQLite 后端看到一个假定的日期时间字段时,它会在运行时使用此方法生成一个转换器:

django.db.backends.sqlite3.operations.DatabaseOperations

这工作正常。

然而,MySQL 后端会这样做:

django.db.backends.mysql.operations.DatabaseOperations

然后 Django 继续崩溃,试图检查<str>时区感知。

语境

以上是我用来重现崩溃的玩具示例。

在我们的实际生产环境中execute_sql,奇怪的是,如果我请求带datetime.datetime注释的作者的完整列表(action=='list'一个(action=='retrieve')。查询集各自的 sql 查询仅因存在单个 WHERE 子句而有所不同。

这让我认为我做错了什么并且没有得到datetime.datetime我应该从驱动程序中获得的原始数据(而不是 Django 中出现错误的可能性要低得多)。

我应该怎么办?N+1 是不可能的,这将是应用程序的主要操作员视图,并且 datetime 字段实际上是两个深度的一对多关系。

0 投票
2 回答
1372 浏览

django - 如何在带注释的 Django 查询集结果上列出字段值?

这可能在某个地方,但不太确定如何问它。希望这将是一个快速的。假设我有一张如下表:

我想对这些进行注释,以便获得名称、总数和站点列表。因此,鉴于上面的数据,我会得到以下信息。

我知道如何获得count_total,但我不确定如何获得site_list。有任何想法吗?