带有axios的Django REST中的IntegrityError(1048,“列'category_owner_id'不能为空”)

时间:2018-09-24 01:58:52

标签: django reactjs post django-rest-framework axios

我想通过axios将服务器的数据发布到前端, 但是我不断遇到错误:

  / p /中的

IntegrityError   (1048,“列'category_owner_id'不能为空”)

我在后端使用DRF,在前端使用React。这是我的React和DRF部分。

getCategory.js

axios({
        url: 'http://127.0.0.1:8000/profile/',
        method: 'POST',
        data: { 
            data: this.state.information,
        },
        contentType: 'application/json',
     })
     .then(res => {
         console.log(res);
     })
     .catch(err => {
         console.log(err);
     })

Serializer.py

class CategorySerializer(serializers.HyperlinkedModelSerializer):  
    class Meta:
        model = Category
        fields = ('id', 'category_name', 'category_owner_id', 'parentId')

views.py

class SettingView(viewsets.ModelViewSet) :
    queryset = models.Category.objects.all()
    serializer_class = CategorySerializer

    def get(self, request) :
        return JsonResponse(context)

    def post(self, request, format=None):
        return Response("ok")

当然,我很快就进入http://127.0.0.1:8000/profile/

如果列category_owner_id中没有空值,但是它们都不为空。

enter image description here

我是django REST Framework的新手,所以您的所有帮助对我都非常好!

1 个答案:

答案 0 :(得分:1)

使用 ModelSerializer 而不是 HyperlinkedModelSerializer 可能会有帮助

class CategorySerializer(serializers.ModelSerializer):  
    class Meta:
        model = Category
        fields = ('id', 'category_name', 'category_owner_id', 'parentId')

此外,如果您将深度设置为 1,则会导致相同的问题,您可以删除并尝试

# depth = 1