'Defers the loading of data for certain fields until they are accessed.
The set of fields to defer is added to any existing set of deferred
fields. The only exception to this is if None is passed in as the only
parameter, in which case all deferrals are removed (None acts as a
reset option).'

def defer(self, *fields):

    clone = self._clone()
    if (fields == (None,)):
        clone.query.clear_deferred_loading()
    else:
        clone.query.add_deferred_loading(fields)
    return clone
