A widget for django form date fields that displays three inputs (day, month, year).
Project description
django-splitdate
This app provides a form widget that uses three text inputs to enter the day, month and year of a date for a standard DateField. The field is based on Django’s forms.SplitDateTimeWidget.
Quick start
Install django-splitdate:
From the pip repository: pip install django_splitdate
or directly from github: `pip install git+git://github.com/NB-Dev/django-splitdate.git
Add django_splitdate to your INSTALLED_APPS:
INSTALLED_APPS = ( ... 'django_splitdate', )
(optional) Customize the Settings (see below)
Use the SplitDateField in your Forms:
from django_splitdate.forms import SplitDateField date = forms.SplitDateField()
Global Configuration
The SplitDateField can be configured globally in your settings.py file with the following options
SPLITDATE_ORDER (String or Dict):
Defines the ordering of the day, month and year fields.
The order of the fields is defined by a three character string, that contains the characters ‘d’(day), ‘m’(month), ‘y’(year) in the desired order.
The setting can either be such a string to be used on each SplitDateField no matter what language is selected, or a dictionary containing key, value pairs with a locale name as key and the corresponding order string as value to be used depending on the current locale
Default:
dict(( ('en', 'mdy'), ('de', 'dmy') ))
SPLITDATE_PLACEHOLDER_DAY (String):
A string defining the placeholder of the day field.
Default: _('DD')
SPLITDATE_PLACEHOLDER_MONTH (String):
A string defining the placeholder of the month field.
Default: _('MM')
SPLITDATE_PLACEHOLDER_YEAR (String):
A string defining the placeholder of the year field.
Default: _('YYYY')
Widget configuration
If you want to customize the widget of the SplitDateField, use the SplitDateWidget.
e.g. add a class:
from django_splitdate.forms import SplitDateField, SplitDateWidget date = forms.SplitDateField(widget=SplitDateWidget(attrs={'class':'myclass'}))
Additionally the widget takes the following local overwrites of the global configurations at initialization:
field_ordering (String or Dict):
Local overwrite for SPLITDATE_ORDER. Possible values, see above.
placeholder_day (String):
Local overwrite for SPLITDATE_PLACEHOLDER_DAY. Possible values, see above.
placeholder_month (String):
Local overwrite for SPLITDATE_PLACEHOLDER_MONTH. Possible values, see above.
placeholder_year (String):
Local overwrite for SPLITDATE_PLACEHOLDER_YEAR. Possible values, see above.
Running the tests
The included tests can be run standalone by running the tests/runtests.py script. The only requirement for this is Django >= 1.7. If you also want to run coverage, you need to install it before running the tests
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.