【发布时间】:2015-06-27 17:59:44
【问题描述】:
我正在尝试做一些非常简单的事情,但还没有找到方法。
我有一个模型和一个端点,它返回一个 JSON 数组,用 Django Rest Framework 表示该模型的实例。我想在 HTML 模板中包含 JSON(用于 SEO 和快速初始数据加载)。类似的东西
<script>
var data = {% json_from_django_rest_framework "mymodel" %};
</script>
有没有简单的方法来做到这一点?我应该换一种方式吗?
【问题讨论】:
-
你想如何渲染/创建这个模板?显然,DRF 端点将为您提供一些数据(在本例中为 JSON)。要在服务器上静态呈现该 JSON,您可以创建一个提供模板的普通 Django 视图。在该视图中,您可以从 DRF 端点请求数据。我想稍后前端的一些 Javascript 会控制你的 web 应用程序,这就是为什么你首先需要 REST API?
-
是的,我可以在视图中用 python 序列化 JSON。我希望有一种更直接的方法可以直接在模板中执行此操作。事实上,稍后 javascript 会向 REST 端点发出进一步的请求。
-
您的目标是完全避免额外的视图,还是只是为了避免必须创建 DRF 端点已经在此额外视图中提供的相同输出?在后一种情况下,您可以使用 Django 的
resolve助手在您的视图中重用来自 DRF 的 JSON 输出,从而使其保持干燥。 (我可以提供一个例子) -
后者。是的,举个例子就好了。
标签: json django django-templates django-rest-framework