Campos booleanos en serializadores – Django REST Framework

En Django REST Framework, el concepto mismo de Serialización es convertir datos de base de datos a un tipo de datos que pueda ser utilizado por javascript. Cada serializador viene con algunos campos (entradas) que se van a procesar. Por ejemplo, si tiene una clase con el nombre Empleado y sus campos como Employee_id, Employee_name, is_admin, etc. Entonces, necesitará AutoField, CharField y BooleanField para almacenar y manipular datos a través de Django. De manera similar, el serializador también funciona con el mismo principio y tiene campos que se usan para crear un serializador. 
Este artículo gira en torno a los campos booleanos en serializadores en Django REST Framework. Hay dos campos principales para valores booleanos: BooleanField y NullBooleanField.  

campo booleano

Un campo booleano utilizado para envolver valores verdaderos o falsos . Funciona igual que BooleanField – Django Models . De forma predeterminada, las instancias de serializers.BooleanField se crean de forma predeterminada como False. 
Sintaxis – 

field_name = serializers.BooleanField() 

NullBooleanField

Un campo booleano que acepta valores True , False y Null . Funciona igual que NullBooleanField – Django Models . De forma predeterminada, las instancias de serializers.NullBooleanField se crean de forma predeterminada como none. 
Sintaxis –  

field_name = serializers.NullBooleanField()

¿Cómo usar campos booleanos en serializadores?

Para explicar el uso de los campos booleanos, usemos la misma configuración de proyecto de: ¿Cómo crear una API básica usando Django Rest Framework?
Ahora que tiene un archivo llamado serializadores en su proyecto, creemos un serializador con BooleanField y NullBooleanField como campos. 

Python3

#import serializer from rest_framework
from rest_framework import serializers
 
class Geeks(object):
    def __init__(self, bool1, bool2):
        self.field_1 = bool1
        self.field_2 = bool2
 
# create a serializer
class GeeksSerializer(serializers.Serializer):
    # initialize fields
    field_1 = serializers.BooleanField()
    field_2 = serializers.NullBooleanField()

Ahora vamos a crear algunos objetos e intentar serializarlos y verificar si realmente funcionan, Ejecutar, –  

Python manage.py shell

Ahora, ejecute los siguientes comandos de python en el shell 

# import everything from serializers
>>> from apis.serializers import *

# create a object of type Geeks
>>> obj = Geeks(bool1 = True, bool2 = True)

# serialize the object
>>> serializer = GeeksSerializer(obj)

# print serialized data
>>> serializer.data
{'field_1': True, 'field_2': True}

# another example
>>> obj1 = Geeks(bool1 = True, bool2 = None)
>>> serializer = GeeksSerializer(obj1)
>>> serializer.data
{'field_1': True, 'field_2': None}

Aquí está el resultado de todas estas operaciones en la terminal: 

boolean-fields-in-serializers

Argumentos centrales en los campos del serializador

.math-table { borde-colapso: colapsar; ancho: 100%; } .math-table td { borde: 1px sólido #5fb962; alineación de texto: izquierda! importante; relleno: 8px; } .math-table th { borde: 1px sólido #5fb962; relleno: 8px; } .math-table tr>th{ color de fondo: #c6ebd9; alineación vertical: medio; } .math-table tr:nth-child(odd) { background-color: #ffffff; }  

Argumento Descripción
solo lectura Establézcalo en True para asegurarse de que el campo se use al serializar una representación, pero no al crear o actualizar una instancia durante la deserialización.
escribir solamente Establézcalo en True para asegurarse de que el campo se pueda usar al actualizar o crear una instancia, pero no se incluya al serializar la representación.
requerido Establecer esto en False también permite omitir el atributo del objeto o la clave del diccionario de la salida al serializar la instancia.
defecto Si se establece, proporciona el valor predeterminado que se utilizará para el campo si no se proporciona ningún valor de entrada.
permitir nula Normalmente, se generará un error si se pasa Ninguno a un campo serializador. Establezca este argumento de palabra clave en Verdadero si Ninguno debe considerarse un valor válido.
fuente El nombre del atributo que se utilizará para rellenar el campo.
validadores Una lista de funciones de validación que deben aplicarse a la entrada de campo entrante y que generan un error de validación o simplemente regresan.
error de mensajes Un diccionario de códigos de error a mensajes de error.
etiqueta Una string de texto corta que se puede usar como el nombre del campo en campos de formulario HTML u otros elementos descriptivos.
texto de ayuda Una string de texto que se puede utilizar como descripción del campo en campos de formulario HTML u otros elementos descriptivos.
inicial Un valor que debe usarse para completar previamente el valor de los campos de formulario HTML.

Publicación traducida automáticamente

Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *