'Cloning a ValuesQuerySet preserves the current fields.'

def _clone(self, klass=None, setup=False, **kwargs):

    c = super(ValuesQuerySet, self)._clone(klass, **kwargs)
    if (not hasattr(c, '_fields')):
        c._fields = self._fields[:]
    c.field_names = self.field_names
    c.extra_names = self.extra_names
    c.aggregate_names = self.aggregate_names
    if (setup and hasattr(c, '_setup_query')):
        c._setup_query()
    return c
