Ввод для поля отсутствует даже после ввода правильного формата в API
Я закодировал следующее:
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)
Страница выглядит следующим образом:
Но если я копирую
{'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'}}
И нажав кнопку post, получил ошибку, говорящую, что одинарные кавычки должны быть двойными кавычками. Поэтому я изменил его на :
{"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"}}
Я снова нажал на кнопку post и на этот раз вылезла следующая ошибка:
Я не понимаю, почему это происходит. Причина, по которой я ввожу длинный формат, заключается в том, что именно этот формат я хочу сохранить в своей базе данных, и этот формат создается при сохранении из моего html, который создает задание
Ваш объект данных поста не содержит требуемого ключа "combinedparameters". Я предполагаю, что большой объект, который вы копируете в content, является строкой, которую вы хотите сохранить в CharField combinedparameters? Если это так, то вам следует структурировать данные поста следующим образом:
{
"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'}}"
}