Ответ 1
Хорошо, поэтому комментарий Кевина Браунса верен. Мне нужно было добавить allow_null = True.
class SerializerA(serializers.Serializer):
details = DetailsSerializer(required=False, allow_null=True)
Причиной этого является то, что с обязательным = False позволяет детали поля отсутствовать в данных при построении сериализатора.
например.
s = SerializerA(data={})
тогда как allow_null разрешает указать параметр, но должен быть нулевым.
например.
s = SerializerA(data={'details': None})
Это открывает еще одну проблему с API-интерфейсом, поддерживающим DRF, но я спрошу об этом в другом вопросе.