Выполнение пост http запроса данных формы в базу данных с пустыми/пустыми полями
У меня есть потребительская модель с несколькими полями, где я также указал их значения по умолчанию; например,
age = models.CharField(default="no information", max_length=50)
Я использую следующий фрагмент для размещения нового потребителя в моей базе данных MongoDB:
if request.method == 'POST':
try:
consumer_data = JSONParser().parse(request)
consumer_serializer = ConsumerModelSerializer(data=consumer_data)
if consumer_serializer.is_valid():
consumer_serializer.save()
collection_name.insert_one(consumer_serializer.data)
response = {
'message': "Successfully uploaded a consumer with id = %d" % consumer_serializer.data.get('id'),
'consumers': [consumer_serializer.data],
'error': ""
}
return JsonResponse(response, status=status.HTTP_201_CREATED)
else:
error = {
'message': "Can not upload successfully!",
'consumers': "[]",
'error': consumer_serializer.errors
}
return JsonResponse(error, status=status.HTTP_400_BAD_REQUEST)
except:
exceptionError = {
'message': "Can not upload successfully!",
'consumers': "[]",
'error': "Having an exception!"
}
return JsonResponse(exceptionError, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Когда я заполняю все поля на форме Angular и отправляю пост, все работает нормально. Однако, когда я оставляю поле blank, я получаю сообщение об ошибке bad request и сообщение не проходит.
Изначально я подумал, что это из-за отсутствия полей по умолчанию в моей модели Django, но даже после того, как я добавил их, я все равно получаю это.
Как я могу изменить сниппет кода, чтобы позволить мне публиковать сообщения с пустыми полями?
Это не только экономит мое время на тестирование и многократное заполнение формы, но и пользователь приложения может действительно оставить некоторые поля пустыми...
Просто добавьте blank=True
и убедитесь, что есть параметр default
также:
age = models.CharField(default="no information", max_length=50, blank=True)