Ни один маршрут не соответствует заданному запросу

У меня проблемы с загрузкой страницы, так как я получаю ошибку 'Page Not Found', которая гласит "ни один маршрут не соответствует заданному запросу". Я полагаю, что это связано с первой строкой в моем views.py, где я получаю переменную search. Когда я убираю переменную search, она говорит, что возвращает несколько маршрутов (которые у меня есть в панели администратора Django), но я не знаю, как это изменить, чтобы загрузить страницу и запрос?

urls.py

urlpatterns = [
    path('', calc_distance, name='calc_distance')
]

views.py

def calc_distance(request):
    search = get_object_or_404(Route, id=1)
    form = DistanceMeasureForm(request.POST or None)
    geolocator = Nominatim(user_agent='distance')

    ip = '72.80.77.214'
    city, country, long_lat = use_ip(ip)

    latitude = long_lat.get('latitude')
    longitude = long_lat.get('longitude')
    city = long_lat.get('city')

    location = geolocator.geocode(city)
    print(location)

    l_lat = latitude
    l_long = longitude
    start = (l_lat, l_long)

    if form.is_valid():
        lookup = form.save(commit=False)
        arrival_location = form.cleaned_data.get('arrival_location')
        arrival = geolocator.geocode(arrival_location)
        # print(arrival)

        end_latitude = arrival.latitude
        end_longitude = arrival.longitude
        end = (end_latitude, end_longitude)

        distance = geodesic(start, end).km
        lookup.location = location
        lookup.distance = distance
        lookup.save()

    context = {
        'form': form,
        'search': search
    }

    return render(request, 'home.html', context)

Models.py

class Route(models.Model):
    location = models.CharField(max_length=200)
    arrival_location = models.CharField(max_length=200)
    distance = models.DecimalField(max_digits=10, decimal_places=2)
    created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return f"Distance from {self.location} to {self.arrival_location} is {self.distance}"
Вернуться на верх