serializermethodfield - Django Rest Framework Serializador anidado requerido=error falso
serializer update django rest (1)
En DRF v3.1, tengo un serializador anidado como el que se detalla en los documentos: http://www.django-rest-framework.org/api-guide/serializers/#dealing-with-nested-objects
class SerializerA(serializers.Serializer):
details = DetailsSerializer(required=False)
Sin embargo, al intentar usar este serializador y no proporcionar los detalles, recibo lo siguiente:
{u''details'': [u''This field may not be null.'']}
Esto parece incorrecto dados los documentos?
¿Alguien más ha encontrado esto o puede verificar esto como un error?
Ok, entonces el comentario de Kevin Browns es correcto. Necesitaba agregar allow_null = True.
class SerializerA(serializers.Serializer):
details = DetailsSerializer(required=False, allow_null=True)
La razón de esto es que el requisito = Falso permite que los detalles del campo estén ausentes de los datos al construir el serializador.
por ejemplo, s = SerializerA(data={})
mientras que allow_null permite que se especifique el parámetro pero que sea nulo.
por ejemplo, s = SerializerA(data={''details'': None})
Esto abre otro problema con la API de navegación de DRF, pero lo preguntaré en otra pregunta.