Home > OS >  Input for field is missing even after i type the correct format on the API
Input for field is missing even after i type the correct format on the API

Time:10-06

I have coded the following:

models.py

class Job(models.Model):
    datetime = models.DateTimeField(default=timezone.now)
    combinedparameters = models.CharField(max_length = 1000)

serializers.py

class JobSerializers(serializers.ModelSerializer):
    class Meta:
        model = Job
        fields = ['combinedparameters']

views.py

@api_view(['POST'])
def create_job(request):
    job = Job()
    jobserializer = JobSerializers(job, data = request.data)
    if jobserializer.is_valid():
        jobserializer.save()
        return Response(jobserializer.data, status=status.HTTP_201_CREATED)
    return Response(jobserializer.errors, status=status.HTTP_400_BAD_REQUEST)

Page looks like this: ![image|690x331](upload://nKUSSPmRI0IUrUcKWa9naYdRk4B.png)

But if i copy

{'device': 177, 'configuration': {'port_range': 'TenGigabitEthernet1/0/1,TenGigabitEthernet1/0/2,TenGigabitEthernet1/0/3,TenGigabitEthernet1/0/4,TenGigabitEthernet1/0/5', 'port_mode': 'Access', 'port_status': 'Disabled', 'port_param1': 'Test\\n1\\n2\\n3', 'port_param2': 'Test\\n1\\n2\\n3'}}

And click post, got error saying the single quotes have to be double quotes. So i changed it to :

{"device": 177, "configuration": {"port_range": "TenGigabitEthernet1/0/1,TenGigabitEthernet1/0/5", "port_mode": "Access", "port_status": "Disabled", "port_param1": "1\\n2\\n3", "port_param2": "1\\n2\\n3"}}

I clicked post again and this time the following error comes out: enter image description here

I dont understand why is it happening. The reason why I key in the long format because this is the format i want to save in my database and this format is created upon saving from my html that creates the job

Postman:

enter image description here

Updated Postman:

enter image description here

CodePudding user response:

Your post data object does not contain the required key "combinedparameters". I'm guessing that big object you copy into content is the string you want saved into the CharField combinedparameters? If that's the case you should structure your post data like this:

{
    "combinedparameters": "{'device': 177, 'configuration': {'port_range': 'TenGigabitEthernet1/0/1,TenGigabitEthernet1/0/2,TenGigabitEthernet1/0/3,TenGigabitEthernet1/0/4,TenGigabitEthernet1/0/5', 'port_mode': 'Access', 'port_status': 'Disabled', 'port_param1': 'Test\\n1\\n2\\n3', 'port_param2': 'Test\\n1\\n2\\n3'}}"
}
  • Related