React-Danjo REST 框架:无法使用外键将数据发布到模型

问题描述

我是 Django 的新手,正在做我的第一个项目。我无法做的是将一些数据发送到具有外键字段的模型。这是models.py:

class BasketProductMapping(models.Model):
    product_reference = models.ForeignKey(Product,on_delete=models.CASCADE,blank=True,null=True,related_name='%(class)s_product_name')
    mapped_basket_name = models.CharField(max_length=5,null=False,blank=False)
    mapped_product_name = models.CharField(max_length=30,blank=False)
    basket_product_mapping_date = models.DateField(auto_Now_add=True)
    basket_product_mapping_modified_date = models.DateField(auto_Now=True)
    
    def __str__(self):
        return self.mapped_basket_name

这是我的 serializers.py 文件

class BasketProductMappingSerializer(serializers.ModelSerializer):
    product_reference = ProductSerializer(read_only=False)
    class Meta:
        model = BasketProductMapping
        fields = ('id','mapped_basket_name','mapped_product_name','product_reference')

这是我的views.py:

class BasketProductViewSet(APIView):
    def get(self,request):
        if request.GET.get('id'):
            #print('Basket Product Mapping Details')
            basketProductMappingData = BasketProductMapping.get(id = request.GET.get('id'))
            serializer = BasketProductMappingSerializer(basketProductMappingData)
        else:
            print('Basket Product Mapping Details')
            basketProductMappingData = BasketProductMapping.objects.all()
            serializer = BasketProductMappingSerializer(basketProductMappingData,many=True)
        response = {'status':1,'message':"Basket Product Mapping List",'data':serializer.data}
        return JsonResponse(response,safe=False)
    def post(self,request):
        data = request.data
        print(data)
        serializerData = ''
        saveBasketProductMapping = BasketProductMappingSerializer(data = data)
        
        if saveBasketProductMapping.is_valid():
            print('Valid data')
            saveBasketProductMapping.save()
            serializerData = saveBasketProductMapping.data
            satusResponse = status.HTTP_201_CREATED
        else:
            print('Invalid Data')
            serializerData = saveBasketProductMapping.errors
            statusResponse = status.HTTP_400_BAD_REQUEST
        response = {'status': 1,'message': 'Basket Product Mapping created successfully','statusResponse':statusResponse,'serializerData':serializerData}
        return JsonResponse(response,safe=False)

我正在以这种格式接收来自 POST 请求的数据:

<QueryDict: {'mapped_basket_name': ['B3'],'mapped_product_name': ['XYZ'],'product_reference': ['XYZ']}>

但是,数据并未添加到模型中。我哪里错了?任何帮助将非常感激。提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)