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:
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