python - 如何配置我的自定义序列化模型?
问题描述
我想将此序列化程序设置为只接受二进制数,但它只接受 1 或 0。它不接受 10010101 或其他类似的数字。我怎样才能使一个函数只包含 1 和 0 数字。
from .models import Binary
from rest_framework import serializers
class BinarySerializer(serializers.ModelSerializer):
def validate_binNum(self, value):
if value is not 1 or 0:
raise serializers.ValidationError('binary number must have just 0 or 1.')
class Meta:
model = Binary
fields = '__all__'
解决方案
除了将二进制数存储为 a之外models.PositiveInteger
,您还可以将其存储为 a models.CharField
,并且无论何时要验证输入,都可以执行以下操作:
def validate_binNum(self, value):
try:
number = int(value, 2)
except ValueError:
raise serializers.ValidationError('binary number must have just 0 or 1.')
每当您想使用该值时,您都可以简单地执行number = int(binNum, 2)
推荐阅读
- c# - 如何从 tabbarController.ViewControllerSelected 事件中删除/垃圾收集附加的方法?
- swift - 无法返回 UIPageViewController 内的初始页面 ViewController
- c# - 我想使用正则表达式选择以某个字母开头
- apache-kafka - 解码 Apache Kafka 日志
- python - python - 熊猫数据框到PowerPoint图表后端
- java - 我如何在语法上正确地实现具有类型的接口
, V>? - php - 匿名函数作为 php 中自定义函数的参数
- sonarqube - 通过属性文件自包含声纳配置
- python - 给定 x x x 的字符网格,找到单词及其位置
- go - Kubernetes 自定义 CRD:“无法列出……:服务器找不到请求的资源”