使用PrimaryKeyRelatedField,DRF - 可浏览界面非常慢

时间:2016-02-07 07:18:13

标签: django performance user-interface django-rest-framework browsable

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

我知道这里已经提到了这个问题:Django REST Framework: slow browsable UI because of large related table但是答案不再适用于新版本的DRF

包含两个PrimaryKeyRelatedFields给我5s +加载时间,删除它们会让我回到.3

我已尝试设置html_cutoff=100甚至html_cutoff=1但似乎对加载时间没有任何影响。

有什么想法吗?目前在DRF'3.3.2'

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

3 个答案:

答案 0 :(得分:1)

自DRF版本3.4.4以来,可以使用selected fields cutoffs限制显示的关系数量。

来自DRF文件:

  

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

     

...

     

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

答案 1 :(得分:1)

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

本质上是 N + 1 问题,在Django上下文中,可以通过在prefetch_related()上调用select_related()QuerySet来急于加载数据来解决。选中此answare

答案 2 :(得分:0)

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