def to_representation(self, instance): if 'request' in self._context: params = self._context['request'].query_params if 'lon' in params and 'lat' in params: lon = float(params['lon']) lat = float(params['lat']) p = GEOSGeometry('POINT(%f %f)' % (lon, lat), srid=4326) instance.origin = p if 'tags' in params and params['tags']: from tag.models import Tag tags = Tag.tags_from_param(params['tags']) instance.search_tags = tags return super(UserPlaceSerializer, self).to_representation(instance)