takeDate (23 декабря 2020 г., 20:23), я хочу изменить его на DateTime.
Примечание редактора: хотелось бы определить URL-адрес с переменной, из которой можно создать объект DateTime.
urls.py
from django.urls import path
from Reservations import views
urlpatterns = [
path('rent/<takeDate>/<returnDate>/<id>', views.rent, name='rent'),
]
просмотры.py
def rent(request, takeDate, returnDate,id):
print(takeDate)
return render(request, 'reservations/rent.html')





Вам лучше определить URL-адрес более явно, чтобы указать формат ввода URL-адреса DateTime. Взгляните на это, аналогичный вопрос, но с использованием старой версии Django.
Если вы определяете свой URL-адрес, зная формат даты, который хотите получить, вы можете легко преобразовать его в дату и время:
url_patterns = [
path("rent/<int:take_day>-<int:take_month>-<int:take_year>/<int:return_day>-<int:return_month>-<int:return_year>/<id>/"),
]
Здесь у нас есть маршрут, который будет соответствовать числовым датам в формате day-month-year.
Затем в вашей функции просмотра вы можете получить аргументы, как обычно, и преобразовать их в DateTime:
from datetime import datetime
def rent(request, take_day, take_month, take_year, return_day, return_month, return_year, id):
takeDateTime = datetime(take_year, take_month, take_day)
returnDateTime = datetime(return_year, return_month, return_day)
# ...
Если вы хотите добавить время, вы можете продолжать добавлять шаблон URL, например. (формат: day-month-year-hour:minute)
"<int:take_day>-<int:take_month>-<int:take_year>-<int:take_hour>:<int:take_minute>"
Еще лучшим решением, хотя и более продвинутым, является использование пользовательского конвертера путей, вы можете узнать больше о них в документации Django: https://docs.djangoproject.com/en/3.1/topics/http/urls/# Преобразователи настраиваемых путей регистрации
Я не буду объяснять, как их реализовать здесь, поскольку документация Django справится с этой задачей лучше, чем я, если вас интересует этот метод.
Добро пожаловать в сообщество, Stack Overflow поддерживает уценку, поэтому вы можете обернуть свой код в ``` (тройные обратные кавычки) для его форматирования. И, если возможно, полезно разделить ваш код и ваш вопрос, чтобы мы могли прочитать его более четко.