как настроить мою настроенную модель сериализатора? - PullRequest
0 голосов
/ 20 марта 2020

Я хочу установить этот сериализатор так, чтобы он принимал только двоичные числа, но он принимает только 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__'

1 Ответ

0 голосов
/ 20 марта 2020

Вместо сохранения двоичного числа как models.PositiveInteger, вы можете сохранить его как 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)

...