问题标签 [drf-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 回答
177 浏览

django - 如何通过 DRF 从 Django QuerySet 中将每一列作为一个列表

使用 Django-REST 框架,我有以下视图:

它返回一个带有以下形状的 JSON:

有没有办法将每一列作为值列表,如下所示:

JSON 的确切形状并不重要,只需将每个“列”(模型字段)作为所有值的列表,而不是将每一行作为字典。(因为数据然后被传递到期望数据位于单独列表中的库)

显然,我可以解压 QuerySet 并用 Python 重构它(例如在那个答案中),但我正在寻找某种方法来告诉 Django 或 DRF 首先像这样构建 JSON,而不是让 Django 和 DRF 构建结果以一种方式,然后再次迭代结果以对其进行重构。

0 投票
1 回答
53 浏览

python - Django Rest Framework:更改查询集中注释字段的输出格式

你好 StackOverflow 社区,

我目前正在努力在我的views.py 中指定输出格式。我有一列“日期”,它使用以下格式:2021-01-14。在我的回复中,我想更改日期格式,使其仅显示2021 年

我已经用Cast试过了,但似乎这不是正确的方法。对于这个视图,我不使用序列化器,因此添加它就没有选项了。

视图.py

我尝试了什么:

错误信息

TypeError: __init__() got an unexpected keyword argument 'format'

0 投票
2 回答
577 浏览

django - Django Rest Framework:将值附加到 ListAPIView

StackOverflow 社区,

我有以下序列化程序和视图:

序列化程序.py

视图.py

这给了我以下输出:

我还想汇总总平均价格并将其添加到输出中,例如:

不幸的是,我不知道如何做到这一点,因为将其添加到序列化程序会导致每个 JSON 对象中都有 total_average_price。我还尝试覆盖 ListAPIView (获取函数),但这杀死了内置分页:(

我希望有人能够帮助我找到解决这个问题的巧妙方法。

0 投票
2 回答
190 浏览

python - 在序列化器字段查询集定义中使用序列化器上下文

我正在寻找一种使用在特定 SlugRelatedField 的查询集声明中使用的 get_serializer_context 在 ModelViewSet 中定义的序列化器上下文的方法:

在所有序列化器方法中,这可以使用 self.context 访问,但我想使用上下文字典中的此信息过滤此字段的查询集:

这里应用到 StorageLocation (project__code = context['project_code'])的查询集是我当前的问题所在。

一些额外的上下文:这个问题是试图解决来自 rest_framework 的以下错误(StorageLocation 查询集被设置为 .all()):

projects.models.procurement.StorageLocation.MultipleObjectsReturned:get() 返回了多个 StorageLocation——它返回了 2 个!

0 投票
1 回答
47 浏览

django - Django 使用某些字段的最新值注释查询集

我有一个存储一些营销业绩的模型:

我需要为 drf ModelViewset 生成一个查询集,它聚合数字指标并获取字段的最后一个值:出价、预算和状态。

像这样的东西:

但我真的不知道该怎么做

0 投票
2 回答
369 浏览

django - Django Rest FrameWork 使用 group by 减少查询次数

我正在使用 Django Rest Frameworks 编写一个 api。该 api 获取客户列表。客户有许多项目。我的 api 应该返回包含已完成、待处理和总计项目数量的客户列表。我的 api 工作,但它有太多的 sql 查询。api是分页的

现在我的客户序列化器

项目有一个客户端外键。我尝试使用注释来获取如下所有产品并进行分组。但是注释只在一个领域起作用。

如何对多个字段进行分组并将该额外参数传递给序列化程序。或者有没有更好的方法。我也尝试了 prefetch_related 但 total_projects_count 仍在执行新的 sql 查询

0 投票
1 回答
129 浏览

django - 是否有使用可扩展过滤器创建 Django 查询的最佳实践?

假设我有一个“查找发票页面”,用户可以在其中输入(或不输入)不同的字段,以便搜索发票以在列表中显示它们。假设这个字段列表可能会随着时间的推移增加额外的 db 字段。我当前的(工作)解决方案如下,但我想知道是否有更好的方法来允许可能的附加字段并相应地调整查询。

query.py [自定义查询编写器]

views.py(Django 休息框架)

0 投票
1 回答
653 浏览

django - Django Rest Framework 是否对 SerializerMethodField 执行查询

我有以下 Django Rest Framework 序列化程序:

我有以下观点:

所以,我的问题是,当我的序列化程序正在准备帖子的 JSON 以获取每个帖子的评论时,它是否执行数据库查询?

例如,如果我有 10 个帖子,是否在此视图中执行了 11 个数据库查询?(1 个查询获取帖子,10 个查询获取序列化程序中每个帖子的评论)。

0 投票
2 回答
425 浏览

django - DRF 自定义分页无法正常工作

最近我正在使用 drf 分页类,PageNumberPagination。我可能遇到也可能没有遇到一个奇怪的错误。官方文档提到,要覆盖 PageNumberPagination 的页面大小,我们必须创建一个自定义分页器来覆盖页面大小配置,如下所示

但是当我尝试做同样的事情时,自定义分页器使用默认设置为 100 这是我使用的片段

有一刻代码工作正常,但是在页面大小玩了一段时间后,分页器刚刚停止工作,我必须做类似下面的事情才能使页面大小正常工作

这是我的休息框架设置

我想我可能做错了什么,但我无法找到错误。

0 投票
0 回答
54 浏览

database - 为什么我的 drf 数据在 heroku 中被删除?

我在 Heroku 中有一个 Django Rest 框架应用程序。我从管理面板创建的模型对象和用户会在一段时间后自动删除。我使用 django 的 dbSqlite3 作为我的数据库。

为什么我的数据没有存储在 Heroku 中?有什么方法可以将我的数据永久存储在 Heroku 中?