'I'm trying to set geo coordinates through address using mapquest. but it give me an error[ django.contrib.gis.gdal.error.GDALException: OGR failure. ]
I'm trying to set geo coordinates through address using mapquest, gdal, gis. but it give me an error. I never used gdal and gis so i can't figue out the problem but i think there is problem on models.py. please help me to figue out the [OGR failure] error
Any help would be appreciated! - Let me know if I should update this question with my settings.py or other relevant files.
Here is me Logs.
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/job/job/add/
Django Version: 4.0.3
Python Version: 3.10.4
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'corsheaders',
'django_filters',
'job.apps.JobConfig',
'django.contrib.gis']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback (most recent call last):
File "D:\Django\Jobbee\env\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
response = get_response(request)
File "D:\Django\Jobbee\env\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "D:\Django\Jobbee\env\lib\site-packages\django\contrib\admin\options.py", line 683, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
File "D:\Django\Jobbee\env\lib\site-packages\django\utils\decorators.py", line 133, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "D:\Django\Jobbee\env\lib\site-packages\django\views\decorators\cache.py", line 62, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "D:\Django\Jobbee\env\lib\site-packages\django\contrib\admin\sites.py", line 242, in inner
return view(request, *args, **kwargs)
File "D:\Django\Jobbee\env\lib\site-packages\django\contrib\admin\options.py", line 1885, in add_view
return self.changeform_view(request, None, form_url, extra_context)
File "D:\Django\Jobbee\env\lib\site-packages\django\utils\decorators.py", line 46, in _wrapper
return bound_method(*args, **kwargs)
File "D:\Django\Jobbee\env\lib\site-packages\django\utils\decorators.py", line 133, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "D:\Django\Jobbee\env\lib\site-packages\django\contrib\admin\options.py", line 1745, in changeform_view
return self._changeform_view(request, object_id, form_url, extra_context)
File "D:\Django\Jobbee\env\lib\site-packages\django\contrib\admin\options.py", line 1791, in _changeform_view
form_validated = form.is_valid()
File "D:\Django\Jobbee\env\lib\site-packages\django\forms\forms.py", line 205, in is_valid
return self.is_bound and not self.errors
File "D:\Django\Jobbee\env\lib\site-packages\django\forms\forms.py", line 200, in errors
self.full_clean()
File "D:\Django\Jobbee\env\lib\site-packages\django\forms\forms.py", line 433, in full_clean
self._clean_fields()
File "D:\Django\Jobbee\env\lib\site-packages\django\forms\forms.py", line 445, in _clean_fields
value = field.clean(value)
File "D:\Django\Jobbee\env\lib\site-packages\django\contrib\gis\forms\fields.py", line 90, in clean
geom.transform(self.srid)
File "D:\Django\Jobbee\env\lib\site-packages\django\contrib\gis\geos\geometry.py", line 480, in transform
g = gdal.OGRGeometry(self._ogr_ptr(), srid)
File "D:\Django\Jobbee\env\lib\site-packages\django\contrib\gis\gdal\geometries.py", line 123, in __init__
self.srs = srs
File "D:\Django\Jobbee\env\lib\site-packages\django\contrib\gis\gdal\geometries.py", line 289, in _set_srs
sr = SpatialReference(srs)
File "D:\Django\Jobbee\env\lib\site-packages\django\contrib\gis\gdal\srs.py", line 114, in __init__
self.import_epsg(srs_input)
File "D:\Django\Jobbee\env\lib\site-packages\django\contrib\gis\gdal\srs.py", line 300, in import_epsg
capi.from_epsg(self.ptr, epsg)
File "D:\Django\Jobbee\env\lib\site-packages\django\contrib\gis\gdal\prototypes\errcheck.py", line 120, in check_errcode
check_err(result, cpl=cpl)
File "D:\Django\Jobbee\env\lib\site-packages\django\contrib\gis\gdal\error.py", line 59, in check_err
raise e(msg)
Exception Type: GDALException at /admin/job/job/add/
Exception Value: OGR failure.
model.py
from django.db import models
from datetime import *
from django.contrib.auth.models import User
import geocoder
import os
from django.contrib.gis.db import models as gismodels
from django.contrib.gis.geos import Point
class Job(models.Model):
address = models.CharField(max_length=100,null=True)
point = gismodels.PointField(default=Point(0.0, 0.0))
def save(self, *args, **kwargs):
g = geocoder.mapquest(self.address, key=os.environ.get('GEOCODER_API'))
print(g)
lng =g.lng
lat=g.lat
self.point = Point(lng, lat)
super(Job, self).save(*args, **kwargs)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
