将具有Model1
字段的模型models.ManyToManyField
呈现给数据库中包含~50K条目的另一个模型Model2
时,默认的可浏览HTML呈现大约需要 3s < / strong>回答,而JSON渲染需要 30ms 。
打开Django调试工具栏,显示以下SQL请求:
SELECT `app_model2`.`id`, `app_model2`.`field1` ... FROM `app_model2`;
本身几乎 2s 。
的第14行时会触发该查询有没有办法阻止渲染执行如此昂贵的SQL请求?
在我们的情况下,我们不希望呈现的内容不仅仅是来自这些id
条目的Model2
。
答案 0 :(得分:0)
我假设你在django-admin中使用它,那里你有一个多选字段。如果是这种情况,您可以使用raw_id_fields
来阻止获取所有选项。
https://docs.djangoproject.com/en/2.0/ref/contrib/admin/