1

如何使用 RelatedField 使 Django Rest Frameworks 可浏览 UI 快速?

我知道这里已经有人问过这个问题:Django REST Framework: slow browsable UI because of large related table but the answer is no longer valid for new versions of DRF

包括两个 PrimaryKeyRelatedFields 给了我 5 秒以上的加载时间,删除它们让我回到 0.3 以下

我尝试过设置html_cutoff=100,甚至尝试过,html_cutoff=1但加载时间似乎没有区别。

有任何想法吗?目前在 DRF '3.3.2'

编辑:所涉及的表有 12000 到 120 条记录 - 但处理更大的数量会很棒

4

3 回答 3

2

从 DRF 版本3.4.4开始,可以通过使用选定字段 cutoffs来限制显示的关系数量。

来自 DRF 文档:

在可浏览的 API 关系字段中呈现时,将默认仅显示最多 1000 个可选项目。如果存在更多项目,则会显示“超过 1000 个项目...”的禁用选项。

...

您还可以使用设置 HTML_SELECT_CUTOFF 和 HTML_SELECT_CUTOFF_TEXT 全局控制这些。

于 2017-04-19T20:18:21.777 回答
1

这个问题与这个Django REST Framework 类似或重复:slow browsable UI because of large related table

本质上它是N+1问题,在 Django 的上下文中,它可以通过调用prefetch_related()select_related()on预先加载数据来解决QuerySet。检查这个答案

于 2019-03-27T14:20:35.723 回答
0

不是我正在寻找的答案,但目前看起来 github 上已经有相关活动 - https://github.com/tomchristie/django-rest-framework/issues/3329运气不错,其中之一补丁将很快合并

于 2016-02-07T09:23:28.693 回答