(self, value)
| 258 | return "%s,%s" % (pnt_lat, pnt_lng) |
| 259 | |
| 260 | def convert(self, value): |
| 261 | from django.contrib.gis.geos import Point |
| 262 | |
| 263 | from haystack.utils.geo import ensure_point |
| 264 | |
| 265 | if value is None: |
| 266 | return None |
| 267 | |
| 268 | if hasattr(value, "geom_type"): |
| 269 | value = ensure_point(value) |
| 270 | return value |
| 271 | |
| 272 | if isinstance(value, str): |
| 273 | lat, lng = value.split(",") |
| 274 | elif isinstance(value, (list, tuple)): |
| 275 | # GeoJSON-alike |
| 276 | lat, lng = value[1], value[0] |
| 277 | elif isinstance(value, dict): |
| 278 | lat = value.get("lat", 0) |
| 279 | lng = value.get("lon", 0) |
| 280 | else: |
| 281 | raise TypeError("Unable to extract coordinates from %r" % value) |
| 282 | |
| 283 | value = Point(float(lng), float(lat)) |
| 284 | return value |
| 285 | |
| 286 | |
| 287 | class NgramField(CharField): |
nothing calls this directly
no test coverage detected