Axios POST请求不适用于Django-RestFramework

时间:2020-04-20 13:55:57

标签: api vuejs2 django-rest-framework axios postman

当我尝试使用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']

0 个答案:

没有答案
相关问题