Получение значения переменной javascript в теге шаблона Django url, но при этом возникает следующая ошибка
В моем приложении django, когда я меняю автомобиль в форме выбора автомобиля, выскакивает эта ошибка: [15/Apr/2024 15:16:49] "GET /unavailable-dates/10/?start_date=2024-01-01&end_date=2024-12-31 HTTP/1.1" 404 2932
urls.py
from django.urls import path
from . import views
urlpatterns = [
# Other URL patterns
path('unavailable-dates/<int:car_id>/', views.get_unavailable_dates, name='unavailable_dates'),
]
booking_form.html
<!-- Inline JavaScript -->
<script>
$(document).ready(function(){
$('#id_car').change(function(){
var carId = $(this).val(); // Get selected car ID
// Make an AJAX request to fetch unavailable dates for the selected car
$.ajax({
url: '/unavailable-dates/' + carId + '/', // URL of the get_unavailable_dates view
data: {
'start_date': '2024-01-01', // Example start date, replace with actual value
'end_date': '2024-12-31' // Example end date, replace with actual value
},
success: function(data) {
// Handle the response data here
console.log("Unavailable dates:", data);
},
error: function(jqXHR, textStatus, errorThrown) {
console.error("AJAX error: " + textStatus + ' : ' + errorThrown);
}
});
});
});
</script>
views.py
def get_unavailable_dates(request, car_id):
try:
car = Car.objects.get(id=car_id)
except Car.DoesNotExist:
return HttpResponse("Car not found.", status=404)
start_date_str = request.GET.get('start_date')
end_date_str = request.GET.get('end_date')
if not start_date_str or not end_date_str:
return HttpResponse("Start date and end date must be provided in the request.", status=400)
try:
start_date = datetime.strptime(start_date_str, '%Y-%m-%d')
end_date = datetime.strptime(end_date_str, '%Y-%m-%d')
except ValueError:
return HttpResponse("Invalid date format. Dates must be in YYYY-MM-DD format.", status=400)
# Fetch unavailable dates directly from the database
unavailable_dates = Booking.objects.filter(car=car, period_end__gte=start_date, period_start__lte=end_date).values_list('period_start', 'period_end')
# Create a list of unavailable dates based on booking periods
unavailable_dates_list = []
for booking_start, booking_end in unavailable_dates:
current_date = booking_start
while current_date <= booking_end:
unavailable_dates_list.append(current_date.strftime('%Y-%m-%d'))
current_date += timedelta(days=1)
# Return unavailable dates as plain text
response_content = "\n".join(unavailable_dates_list)
return HttpResponse(response_content, content_type="text/plain")
Я пытался получить значение переменной javascript в теге шаблона Django url, но это не сработало, и постоянно выскакивает одна и та же ошибка