Skip to main content

A widget for django form date fields that displays three inputs (day, month, year).

Project description

PyPI version Build Status Coverage Status Downloads Supported Python versions License


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

  1. Install django-splitdate:

    • From the pip repository: pip install django_splitdate
    • or directly from github: `pip install git+git://
  2. Add django_splitdate to your INSTALLED_APPS:

  3. (optional) Customize the Settings (see below)

  4. 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 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


    ('en', 'mdy'),
    ('de', 'dmy')


A string defining the placeholder of the day field.

Default: _('DD')


A string defining the placeholder of the month field.

Default: _('MM')


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/ 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for django-splitdate, version 0.1.8
Filename, size File type Python version Upload date Hashes
Filename, size django-splitdate-0.1.8.tar.gz (6.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page