向具有 empty/blank 字段的数据库发出 post 表单数据的 http 请求
Making a post http request of form data to a database with empty/blank fields
我有一个包含多个字段的消费者模型,我还指定了它们的默认值;例如
age = models.CharField(default="no information", max_length=50)
我使用以下代码片段 post 我的 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 表单和 post 上的所有字段时,一切正常。但是,当我将字段 留空 时,我收到 错误请求 错误消息并且 post 没有通过。
起初,我以为是因为我的 Django 模型中没有默认字段,但即使我添加了它们,我仍然明白。
如何修改代码片段以允许我 post 使用空白字段?
这不仅节省了我多次测试和填写表格的时间,而且该应用程序的用户实际上可能会将某些字段留空...
只需添加 blank=True
并确保还有一个 default
参数:
age = models.CharField(default="no information", max_length=50, blank=True)
我有一个包含多个字段的消费者模型,我还指定了它们的默认值;例如
age = models.CharField(default="no information", max_length=50)
我使用以下代码片段 post 我的 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 表单和 post 上的所有字段时,一切正常。但是,当我将字段 留空 时,我收到 错误请求 错误消息并且 post 没有通过。
起初,我以为是因为我的 Django 模型中没有默认字段,但即使我添加了它们,我仍然明白。
如何修改代码片段以允许我 post 使用空白字段?
这不仅节省了我多次测试和填写表格的时间,而且该应用程序的用户实际上可能会将某些字段留空...
只需添加 blank=True
并确保还有一个 default
参数:
age = models.CharField(default="no information", max_length=50, blank=True)