password jsonfield integerfield framework django serialization django-rest-framework textfield biginteger

jsonfield - Cómo serializar BigIntegerField, TextField en el serializador Django



integerfield django (1)

Esto se debe a que el Serializador del marco de descanso django no tiene un campo de texto. Donde su modelo tiene un TextField, necesita usar un CharField en el serializador.

CharField Una representación de texto. Opcionalmente valida el texto para que sea más corto que max_length y más largo que min_length.

Corresponde a django.db.models.fields.CharField o django.db.models.fields.TextField .

La documentación no es tan clara acerca de BigIntegerFields de los modelos, pero esta línea para el código fuente muestra que IntegerField es nuevamente lo que debe usar en el serializador.

Tengo un modelo que tiene los siguientes atributos

from django.db import models class ApiLogs(models.Model): user_id = models.BigIntegerField(null=True) ip = models.CharField(max_length=16) user_agent = models.TextField(blank=True, null=True) client = models.CharField(max_length=50, blank=True, null=True) client_version = models.CharField(max_length=50, blank=True, null=True) token = models.TextField(blank=True, null=True) uri = models.CharField(max_length=200) method = models.CharField(max_length=20)

He definido un serializador

from rest_framework import serializers class ApiSerializer(serializers.Serializer): user_id = serializers.BigIntegerField( allow_null=True) ip = serializers.CharField(max_length=16) user_agent = serializers.TextField(allow_blank=True, allow_null=True) client = serializers.CharField(max_length=50, allow_blank=True, allow_null=True) client_version = serializers.CharField(max_length=50, allow_blank=True, allow_null=True) token = serializers.TextField(allow_blank=True, allow_null=True) uri = serializers.CharField(max_length=200) method = serializers.CharField(max_length=20)

Pero muestra un error similar a este

user_id = serializers.BigIntegerField( allow_null=True) AttributeError: ''module'' object has no attribute ''BigIntegerField''

para campo de texto

user_agent = serializers.TextField(allow_blank=True, allow_null=True) AttributeError: ''module'' object has no attribute ''TextField''

Ahora cómo serializar este tipo de datos.