【发布时间】:2021-01-07 14:20:13
【问题描述】:
我正在使用 Django 和 React 开发一个 Web 应用程序,并使用 Django REST Framework 让它们相互交流。
我正在尝试创建一个 Django 视图,该视图可以处理来自 React 代码的 AJAX 请求和呈现 Django HTML 模板。为此,我使用了来自 Django REST Framework 的 TemplateHTMLRenderer 类,我发现了 here。但是,当我尝试从 React 的该视图中 fetch() 数据时,我没有收到任何有效的响应。
这是我的看法:
# URL: "/"
class IndexView(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = "dictionary/index.html"
def get(self, request, format=None):
definitions = Definition.objects.all()
return Response({"definitions": definitions})
这就是我尝试从 React 获取 fetch() 数据的方式:
componentDidMount() {
fetch("/")
.then(response => response.json())
.then(data => {
this.setState({
definitions: data
});
},
error => {
this.setState({
alert('ERROR')
});
})
}
此代码最终显示警报“错误”。
显然,我的视图没有返回有效的 JSON 对象。如何更改它以同时提供渲染和 API 功能?
【问题讨论】:
标签: reactjs django api templates django-rest-framework