'Allow a version\'s features to be updated.'

def update(self, request, *args, **kwargs):

    obj = self.get_object()
    if ('features' in request.data):
        invalid = [f for f in request.data['features'] if (f.upper() not in APP_FEATURES.keys())]
        if any(invalid):
            raise ParseError(('Invalid    feature(s):    %s' % ',    '.join(invalid)))
        data = {}
        for (key, name) in APP_FEATURES.items():
            field_name = ('has_' + key.lower())
            data[field_name] = (key.lower() in request.data['features'])
        obj.features.update(**data)
        del request.data['features']
    return super(VersionViewSet, self).update(request, *args, **kwargs)
