Не удалось загрузить базу данных из C:\Users\Nenye\Documents\fleetmgt\fleetmgt\geoip
Я работаю над веб-приложением на python/django, которое должно получать текущее местоположение клиента и вычислять расстояние до него после получения пункта назначения из ввода клиента. вот мой код: мой вид:
from django.shortcuts import render
from geopy.geocoders import Nominatim
from .models import Ride
from .forms import BookRideForm
from .utils import get_geo
def book_a_ride_view(request):
form = BookRideForm(request.POST or None)
geolocator = Nominatim(user_agent="riders")
ip = '72.14.207.99'
country, city, lat, lon = get_geo(ip)
print('country:', country)
print('city:', city)
print('lat:', lat)
print('lon:', lon)
msg = ""
if form.is_valid():
new_form = form.save(commit=False)
destination_ = form.cleaned_data.get('destination')
destination = geolocator.geocode(destination_)
print(destination)
d_lat = destination.latitude
d_lon = destination.longitude
new_form.rider_id = request.user.id
# new_form.save()
form = BookRideForm()
msg = 'Your booking is Successful'
template = 'riders/book_ride.html'
context = {"form":form, "msg":msg}
return render(request, template, context)
Вот utils.py:
from django.contrib.gis.geoip2 import GeoIP2
# HELPER FUNCTIONS
def get_geo(ip):
g = GeoIP2()
country = g.country(ip)
city = g.city(ip)
lat, lon = g.lat_lon(ip)
return country, city, lat, lon
я получаю эту ошибку:
System check identified no issues (0 silenced).
August 26, 2021 - 18:56:09
Django version 3.2.6, using settings 'core.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Internal Server Error: /ridersbook_a_ride
Traceback (most recent call last):
File "C:\Users\Nenye\Documents\fleetmgt\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Nenye\Documents\fleetmgt\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Nenye\Documents\fleetmgt\fleetmgt\riders\views.py", line 15, in book_a_ride_view
country, city, lat, lon = get_geo(ip)
File "C:\Users\Nenye\Documents\fleetmgt\fleetmgt\riders\utils.py", line 6, in get_geo
g = GeoIP2()
File "C:\Users\Nenye\Documents\fleetmgt\lib\site-packages\django\contrib\gis\geoip2\base.py", line 95, in __init__
raise GeoIP2Exception('Could not load a database from %s.' % path)
django.contrib.gis.geoip2.base.GeoIP2Exception: Could not load a database from C:\Users\Nenye\Documents\fleetmgt\fleetmgt\geoip.
[26/Aug/2021 19:11:34] "GET /ridersbook_a_ride HTTP/1.1" 500 72899
Пожалуйста, есть ли что-то, что я делаю неправильно?