Здесь я покажу как можно создать форму, в которой можно выбрать день, месяц, год, нажатием мыши.
Для этоко использовался виджет SelectDateWidget, взятый здесь
year = datetime.date.today().year
class MyForms(forms.Form):
dataget = forms.DateField(label='Дата:', initial=datetime.date.today,
input_formats=('%d-%m-%Y',),
widget=SelectDateWidget(input_format='%d-%B-%Y',
years=range(year, year-101, -1)))
initial=datetime.date.today - инициализируем форму с текущей датой
input_formats=('%d-%m-%Y',) - отображения даты в виде день, месяц, год
input_format='%d-%B-%Y' - тображение и обработка даты в виджете
%B - месяц словами, в данном случае английские названия
years=range(year, year-101, -1) - задание диапазона лет, чтобы нельзя бало выбрать дату рождения 1104 от Р. Х.)
Во всех полях данной формы, можно отображать произвольную информацию, с помощью модуля: django.utils.dates. Отдуда импортируются словари MONTHS и MONTHS_3.
Их можно переделать следующим образом:
MONTHS = {
1: 'Январь', 2: 'Февраль', 3: 'Март', 4: 'Апрель', 5: 'Май', 6: 'Июнь',
7: 'Июль', 8: 'Август', 9: 'Сентябрь', 10: 'Октябрь', 11: 'Ноябрь',
12: 'Декабрь'
}
Но лучше использовать для этого конвертацию в другие языки названий месяцев).
Для это го надо в settings.py изменить язик:
LANGUAGE_CODE = 'ru-RU'
Время тоже лучше поменять на свой часовой пояс:
TIME_ZONE = 'Europe/Moscow'
Далее использовать стандартный джанговский модуль в forms.py:
from django.forms.extras.widgets import SelectDateWidget
year = datetime.date.today().year
class MyForms(forms.Form):
dataget = forms.DateField(label='Дата выдачи:', widget=SelectDateWidget(years=range(year, year-101, -1)), required=False)
Комментариев нет:
Отправить комментарий