def create(self, request, *args, **kwargs): data = request.DATA.copy() if data.get('cadena', None) == 'otra': data.pop('cadena') UBICACION_AUTO = False if data.get('ubicacion', None) == 'auto': UBICACION_AUTO = data.pop('ubicacion') serializer = self.get_serializer(data=data, files=request.FILES) if serializer.is_valid(): if UBICACION_AUTO: geo = gis.geocode(serializer.object.ciudad, serializer.object.direccion) ubicacion = Point(geo['lon'], geo['lat']) serializer.object.ubicacion = ubicacion self.pre_save(serializer.object) self.object = serializer.save(force_insert=True) self.post_save(self.object, created=True) headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def geo_code_data(request): if request.method == 'GET': ciudad = get_object_or_None(City, id=request.GET.get('ciudad', None)) direccion = request.GET.get('direccion', None) return geocode(ciudad, direccion)
def get_geocode_data(self): return geocode(self.ciudad, self.direccion)