def geo_search(self, location): """ Method to filter videos based on their geo-information """ if location == 'true': return self.filter(has_location="1") if location == 'false': return self.filter(has_location="0") parts = location.split("__") if not len(parts) >= 3: raise BadSearchGeoFormatException( "Location must be of format {lat}__{lon}__{radius}") lat, lon, radius = map(float, parts[:3]) radius *= MILES_TO_METERS_FACTOR return self.filter( has_location="1", location__geo=GeoQueryArguments(lat, lon, radius))
def test_geosearch_gte(self): query = Query(FakeGeoDocument) query.add_q(Q(my_loc__geo_gte=GeoQueryArguments(3.14, 6.28, 20))) self.assertEqual( u"(distance(my_loc, geopoint(3.140000, 6.280000)) >= 20)", unicode(query))