【发布时间】:2021-03-09 20:45:58
【问题描述】:
我的 serializers.py 中有一个简单的序列化程序。当我想在序列化程序中发送错误数据并检查 serializer.is_valied() 它返回 true。为什么返回 true?
我的 Models.py:
class UserRole(models.Model):
role = models.CharField(max_length = 100, blank=True, null=True)
permission_read = models.BooleanField(null=True)
permission_edit = models.BooleanField(null=True)
permission_write = models.BooleanField(null=True)
permission_delete = models.BooleanField(null=True)
superuser = models.BooleanField(null=True)
def __str__(self):
return self.role
我的 serializers.py:
class CreateRoleSerializers(serializers.ModelSerializer):
class Meta:
model = UserRole
exclude = ['superuser']
我的意见.py:
@api_view(['POST'])
@permission_classes([IsAuthenticated])
@write_required
def user_role_api(request):
if request.method == 'POST':
json = JSONRenderer().render(request.data)
stream = io.BytesIO(json)
data = JSONParser().parse(stream)
serializer = CreateRoleSerializers(data=data)
if serializer.is_valid():
serializer.save(superuser=0)
return Response(status=rest_framework.status.HTTP_200_OK)
return Response(serializer.errors, status=rest_framework.status.HTTP_400_BAD_REQUEST)
当我输入错误数据时,它会在 if 块中输入。我不知道这段代码有什么问题。提前感谢您的帮助!
【问题讨论】:
-
您能更具体地说明什么不起作用吗?如果序列化器和你共享的完全一样,你需要添加验证方法。
-
当我输入错误数据时,它会在 if 块中输入
标签: django api django-rest-framework python-requests django-2.2