两个 DRF 帖子的故事,一个有效,一个无效

问题描述 投票:0回答:1

为 django 应用程序构建 vue.js gui,我有两个 .vue 页面,一个用于添加正在工作的新客户端,另一个用于添加不工作的新客户端帐户。除了字段之外,它们看起来是相同的。

第一个正在工作的。

addNewClient 方法。

// POST API FOR ADDING client
                console.log(this.addNewClient)
                getAPI.post('http://localhost:8000/api/client/', this.addNewClient)
                .then(res=>{

以及摆姿势时的console.log。

submitNewClient
ClientMX.vue:210 Proxy(Object) {clientName: 'Bill Barclay', clientEmail: '[email protected]', clientPhone: '1234567890', clientCompany: 'Barclay Industries'}
mixins.js:130 --mixins toggleModal(addClientModal)

一切正常。

现在是 addnewClientAccunts 方法

console.log(this.addNewclientAccount)
                getAPI.post('http://localhost:8000/api/clientaccount/', this.addNewClientAccount)
                

以及相关的console.log

submitNewClientAccount
ClientAccounts.vue:284 Proxy(Object) {client_fk: 28, client_platform: 'FBU', client_key: 'test', client_value: '123456'}
xhr.js:187     POST http://localhost:8000/api/clientaccount/ 400 (Bad Request)

序列化器实际上是相同的......

class ClientAccountsSerializer(serializers.ModelSerializer):
    class Meta:
        model = ClientAccounts
        fields = ('id', 'client_fk', 'client_platform', 'client_key', 'client_value' )
        
        extra_kwargs = {
            'id': {'read_only': True},  # ID is usually read-only
        }
         
        def create(self, validated_data):
            logger.info("ClientAccountsSerializer.create validated_data = %s ", validated_data)
            return ClientAccounts.objects.create(**validated_data)

class ClientSerializer(serializers.ModelSerializer):
    class Meta:
        model = Client
        fields = ('id', 'clientName', 'clientEmail', 'clientPhone', 'clientCompany')

        extra_kwargs = {
            'id': {'read_only': True},  # ID is usually read-only
        }
    
    def create(self, validated_data):
        logger.info("ClientSerializer.create validated_data = %s ", validated_data)
        return Client.objects.create(**validated_data)

景色也几乎一样...

 def post(self, request):
        print("Client post request.data = %s ", request.data)
        serializer = ClientSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_200_OK)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

 def post(self, request):
        print("ClientAccounts post request.data = %s ", request.data)
        serializer = ClientAccountsSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_200_OK)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

客户端发布终端显示带有新客户端的 json 记录的请求数据。 ClientAccounts 请求数据为空。

两者之间唯一的区别在于领域。这两个模型具有不同的字段,但只有失败的模型具有外键。

这可能是我遗漏的一些简单的东西,但我已经检查并仔细检查了姓名和案例,但发出的数据似乎是正确的,只有客户帖子正在工作。

vue.js django-rest-framework foreign-keys
1个回答
0
投票

好的解决了,我的错误是在看了至少两个小时后,我使用比较,发现一个是大写的 C,另一个是小写的 c。让它们相同,宾果游戏,我们赢了。

© www.soinside.com 2019 - 2024. All rights reserved.