update serializermethodfield modelviewset framework auth allow django-rest-framework

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.