Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

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

Project Description


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

Release History

This version
History Node


Download Files

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

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(6.9 kB) Copy SHA256 Hash SHA256
Source None Feb 24, 2015

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting