Группа selected_day
в вашем шаблоне URL может содержать только слова \w
. Это включает цифры, но не пробелы и тире.
url(r'^my-date/(?P<selected_day>\w+)/$', name='my_date')
Если вы используете формат даты iso8601 для вашей строки даты, вы можете использовать этот шаблон URL.
url(r'^my-date/(?P<selected_day>\d{4}-\d{2}-\d{2})/$', name='my_date')
Простое использование str(date)
для объекта даты должно использовать формат ISO по умолчанию (ГГГГ-ММ-ДД). Вы можете проанализировать строку даты для объекта даты в вашей функции просмотра. Но django QuerySets будет принимать строки даты в качестве аргументов, поэтому этот шаг может не потребоваться.
def my_date_view(request, selected_day):
# this works with either a date object or a iso formatted string.
queryset = MyModel.objects(published_on=selected_day)
# or use strptime to get a date object.
date = datetime.datetime.strptime(selected_day, '%Y-%M-%d').date()
Django также включает в себя служебную функцию, которую вы можете использовать для разбора строк дат: django.utils.dateparse.parse_date