Django REST 'A valid integer is required.'
export const updateCustomer = async (id, customerData) => {
try {
customerData.Customer_Age = parseInt(customerData.Customer_Age, 10);
console.log('updated data:', customerData);
const token = localStorage.getItem('access_token');
if (!Number.isInteger(customerData.Customer_Age) || customerData.Customer_Age <= 0) {
console.log('Customer_Age is not a positive integer');
}else{
console.log('Customer_Age is a positive integer');
}
const response = await axios.put(`${API_URL}${id}/`, customerData,{
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
return response.data;
} catch (error) {
console.error('Failed to update:', error.response.data);
}
};
I conducted several tests, and the results showed that they were all integers.But seems not working, still getting {
Avg_Open_To_Buy: ['A valid integer is required.']
Contacts_Count_12_mon: ['A valid integer is required.']
Customer_Age: ['A valid integer is required.']
Dependent_count: ['A valid integer is required.']
Months_Inactive_12_mon: ['A valid integer is required.']
Months_on_book: ['A valid integer is required.']
Total_Relationship_Count: ['A valid integer is required.']
Total_Revolving_Bal: ['A valid integer is required.']
Total_Trans_Amt: ['A valid integer is required.']
Total_Trans_Ct: ['A valid integer is required.']
}
The other string and floating-point data in the form did not report any errors.So I'm not sure what's going on.
models.py
from django.db import models
class Customer(models.Model):
CLIENTNUM = models.IntegerField(unique=True)
Attrition_Flag = models.CharField(max_length=32)
Customer_Age = models.IntegerField()
Gender = models.CharField(max_length=8)
Dependent_count = models.IntegerField()
Education_Level = models.CharField(max_length=32)
Marital_Status = models.CharField(max_length=16)
Income_Category = models.CharField(max_length=32)
Card_Category = models.CharField(max_length=16)
Months_on_book = models.IntegerField()
Total_Relationship_Count = models.IntegerField()
Months_Inactive_12_mon = models.IntegerField()
Contacts_Count_12_mon = models.IntegerField()
Credit_Limit = models.FloatField()
Total_Revolving_Bal = models.IntegerField()
Avg_Open_To_Buy = models.IntegerField()
Total_Amt_Chng_Q4_Q1 = models.FloatField()
Total_Trans_Amt = models.IntegerField()
Total_Trans_Ct = models.IntegerField()
Total_Ct_Chng_Q4_Q1 = models.FloatField()
Avg_Utilization_Ratio = models.FloatField()
def __str__(self):
return str(self.CLIENTNUM)
serializers.py
from rest_framework import serializers
from .models import Customer
class CustomerSerializer(serializers.ModelSerializer):
Attrition_Flag = serializers.CharField(read_only=True)
class Meta:
model = Customer
fields = '__all__'