当我尝试使用Postman App进行发布时,效果很好,但是当我使用VUE-Axios进行发布时,则显示错误400错误请求,请对此进行帮助。 GET请求也可以很好地工作
只有问题与POST请求有关 同样使用API视图的默认接口,它也可以正常工作 请建议更改Vue代码 PS我是Vue和api交互的初学者
这是Vue代码
var app = new Vue(
{
el:"#app",
delimiters: ['[[',']]'],
data:
{
message: "Integrated With VUE",
},
mounted: function(){
axios.get('api/movie')
.then(response => console.log(response));
},
methods : {
postData() {
axios.post('api/movie/', {
params:
{
id : 10,
title: "Random",
rating: 5,
type: "4",
description: "This is another test data",
torrent: "",
date_added: "Auto_Add"}
},
{headers : {"X-CSRFToken": csrftoken},
}).then( (response)=> {console.log(response); });
}
}
});
在Django视图中,我有这个
class MovieAPIView(APIView):
def get(self, request, format=None):
movies = Movie.objects.all()
serializer = MovieSerializer(movies, many=True)
return Response(serializer.data)
def post(self, request, format=None):
serializer = MovieSerializer(data = request.data)
if serializer.is_valid():
print("Valid Serializer")
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
在Django Serializer中,我有这个
class MovieSerializer(serializers.ModelSerializer):
class Meta:
model = Movie
fields = ['id', 'title', 'rating', 'type', 'description', 'torrent', 'date_added']