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

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

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

  2. Add django_splitdate to your INSTALLED_APPS:

    INSTALLED_APPS = (
        ...
        'django_splitdate',
    )
  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 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


Download files

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

Source Distribution

django-splitdate-0.1.8.tar.gz (6.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page