我正在使用Django和React开发Web应用程序,并使用Django REST Framework使它们彼此通信。
我正在尝试创建一个Django视图,该视图可以处理来自React代码 AND 渲染Django HTML模板的两个AJAX请求。为此,我使用了从here找到的Django REST Framework中的TemplateHTMLRenderer
类。但是,当我尝试从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})
这就是我试图fetch()
从React中获取数据的方式:
componentDidMount() {
fetch("/")
.then(response => response.json())
.then(data => {
this.setState({
definitions: data
});
},
error => {
this.setState({
alert('ERROR')
});
})
}
此代码最终显示警报“ ERROR”。
很明显,我的视图没有返回有效的JSON对象。如何更改它以提供渲染和API功能?
答案 0 :(得分:1)
我相信您需要将JSONRenderer
添加到renderer_classes
并将application/json
添加到HTTP Accept标头。这是一些documentation。