【发布时间】:2018-08-04 17:39:15
【问题描述】:
我正在学习 Django + ReactJS,但我无法从我的 Django 模型中获取数据。
我在本教程中一步一步地学习:http://geezhawk.github.io/using-react-with-django-rest-framework
但是,当我在 Firefox 中检查控制台时,我收到“请求失败,状态码为 500”消息。 Django+React 集成工作正常,但由于某种原因它不会获取数据。有什么想法吗?
网站中的代码如下:
型号:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=200, unique=True)
author = models.CharField(max_length=100)
序列化器:
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ('title', 'author')
views.py
from rest_framework import generics
from .models import Book
from .serializers import BookSerializer
class BookList(generics.ListCreateAPIView):
queryset = Book.objects.all()
serializer_class = BookSerializer
index.html
{% load render_bundle from webpack_loader %}
<!DOCTYPE html>
<html>
<head>
<title>Hello React</title>
</head>
<body>
<div id="container"></div>
{% render_bundle 'main' %}
</body>
</html>
index.js
var React = require('react')
var ReactDOM = require('react-dom')
var BooksList = React.createClass({
loadBooksFromServer: function(){
axios.get(this.props.url)
.then(function (data) {
this.setState({data: data});
}.bind(this)
)
.catch(function (error) {
console.log(error);
});
},
getInitialState: function() {
return {data: []};
},
componentDidMount: function() {
this.loadBooksFromServer();
setInterval(this.loadBooksFromServer,
this.props.pollInterval)
},
render: function() {
if (this.state.data) {
console.log('DATA!')
var bookNodes = this.state.data.map(function(book){
return <li> {book.title} </li>
})
}
return (
<div>
<h1>Hello React!</h1>
<ul>
{bookNodes}
</ul>
</div>
)
}
})
ReactDOM.render(<BooksList url='/api/' pollInterval={1000} />,
document.getElementById('container'))
【问题讨论】:
标签: django reactjs django-rest-framework