python - 如何在 django 中检查 json 数据是否为空值
问题描述
我在 Django 中创建了一个 CRUD 应用程序。并想知道如何检查输入 JSON 数据是否为空,例如:我得到一个 JSON 输入字典
{'status':'abc','name':'xyz','address':'abc@123','city':'abc'}etc
我想检查名称是否为空且城市是否为空。我不想要模型中的必填字段,而是处理 JSON 数据。如果 JSON 输入无效,即如果用户名和电子邮件有效,则将数据保存到数据库中,否则会发出警告 400。
序列化程序.py
from rest_framework import serializers
from .models import Location
class LocationSerializer(serializers.ModelSerializer):
class Meta:
model = Location
fields= '__all__'
视图.py
@api_view(['POST'])
def locationAdd(request):
serializer = LocationSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response("data entered successfully")
else:
return Response("data entered is not valid")
return Response(serializer.data)
模型.py
class Location(models.Model):
status = models.CharField(max_length=100)
name = models.CharField(max_length=100)
address = models.CharField(max_length=100)
city = models.CharField(max_length=100)
postalCode = models.IntegerField(null=True)
state = models.CharField(max_length=100)
解决方案
您可以在 views.py 文件中执行此操作。只需在调用序列化程序之前检查如下
@api_view(['POST'])
def locationAdd(request):
if len(request.data.get('username')) == 0 and len(request.data.get('email')) == 0:
return Response(status=400)
serializer = LocationSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response("data entered successfully")
else:
return Response("data entered is not valid")
return Response(serializer.data)
您可以像这样对您的请求数据添加任何验证。
推荐阅读
- android - 如何在 CardView 的一侧应用边框?
- ios - 如何在应用程序处于后台时检查低电量模式设置
- html - 如何将复选框嵌套在并在另一个中更改元素在:检查?
- jekyll - Jekyll:对一些集合进行分组,但不是全部
- node.js - express.static() 和 sendFile() 问题...用nodejs创建动态主机
- python - 如何加快此文件创建过程?
- vhdl - 在 std_logic_vector 的变量上左移或右移
- laravel - 使用 Webpack/Laravel 混合将 CKEditor 转换为 ES5
- angular - Angular 6 迁移问题
- python-3.x - 使用 python 3 将 .csv 文件导入 sqlite3 时遇到问题