All Projects → monim67 → django-flatpickr

monim67 / django-flatpickr

Licence: MIT license
Flatpicker based DatePickerInput, TimePickerInput and DateTimePickerInput with date-range-picker functionality for django >= 2.0

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to django-flatpickr

Django Bootstrap Datepicker Plus
Bootstrap3/Bootstrap4 DatePickerInput, TimePickerInput, DateTimePickerInput, MonthPickerInput, YearPickerInput with date-range-picker functionality for django version 2.2, 2.1, 1.11, 1.10 and 1.8
Stars: ✭ 156 (+280.49%)
Mutual labels:  timepicker, daterangepicker, date-picker, datetimepicker
vue3-date-time-picker
Datepicker component for Vue 3
Stars: ✭ 157 (+282.93%)
Mutual labels:  timepicker, daterangepicker, datetimepicker
nativescript-datetimepicker
Plugin with date and time picking fields
Stars: ✭ 26 (-36.59%)
Mutual labels:  timepicker, datetimepicker
Datetimepicker
jQuery Plugin Date and Time Picker
Stars: ✭ 3,402 (+8197.56%)
Mutual labels:  timepicker, datetimepicker
Material Ui Pickers
Date & Time pickers, built with ❤️ for @material-ui/core
Stars: ✭ 2,291 (+5487.8%)
Mutual labels:  timepicker, datetimepicker
svelty-picker
Simple date & time picker in svelte
Stars: ✭ 38 (-7.32%)
Mutual labels:  timepicker, datetimepicker
skwas-cordova-plugin-datetimepicker
Cordova Plugin for showing a native date, time or datetime picker.
Stars: ✭ 37 (-9.76%)
Mutual labels:  timepicker, datetimepicker
Datetimepicker
📅 Date and Time Picker
Stars: ✭ 90 (+119.51%)
Mutual labels:  timepicker, datetimepicker
NodaTimePicker
A Date/Time picker component library for Blazor using NodaTime
Stars: ✭ 49 (+19.51%)
Mutual labels:  timepicker, datetimepicker
Vue Datetime
Mobile friendly datetime picker for Vue. Supports date and datetime modes, i18n and more.
Stars: ✭ 928 (+2163.41%)
Mutual labels:  timepicker, datetimepicker
Angular Datepicker
Highly configurable date picker built for Angular applications
Stars: ✭ 386 (+841.46%)
Mutual labels:  timepicker, date-picker
Datetimepicker
This is a custom android holo datepicker timepicker
Stars: ✭ 56 (+36.59%)
Mutual labels:  timepicker, datetimepicker
popoPicker
popoPicker是一个移动端3D滚轮日期时间和单项的选择器,支持无限循环滚动,不依赖第三方库
Stars: ✭ 26 (-36.59%)
Mutual labels:  timepicker, datetimepicker
Pickerjs
⚠️ [Deprecated] No longer maintained. JavaScript date time picker.
Stars: ✭ 299 (+629.27%)
Mutual labels:  timepicker, datetimepicker
Flatpickr
lightweight, powerful javascript datetimepicker with no dependencies
Stars: ✭ 14,575 (+35448.78%)
Mutual labels:  timepicker, daterangepicker
Materialdaterangepicker
A material Date Range Picker based on wdullaers MaterialDateTimePicker
Stars: ✭ 1,315 (+3107.32%)
Mutual labels:  timepicker, datetimepicker
Vue Mj Daterangepicker
🗓Vue.js date range picker with multiples ranges and presets (vue 2.x)
Stars: ✭ 48 (+17.07%)
Mutual labels:  daterangepicker, date-picker
Angular Mydatepicker
Angular datepicker and date range picker 📅
Stars: ✭ 76 (+85.37%)
Mutual labels:  daterangepicker, date-picker
Datetimepicker
⭐️🎉一个简约、漂亮的日期时间选择器,支持全方位自定义UI
Stars: ✭ 378 (+821.95%)
Mutual labels:  timepicker, datetimepicker
Angular Bootstrap Datetimepicker
Native Angular date/time picker component styled by Twitter Bootstrap
Stars: ✭ 1,289 (+3043.9%)
Mutual labels:  timepicker, datetimepicker

django-flatpickr

This django widget contains Date-Picker, Time-Picker, DateTime-Picker input widgets with date-range-picker functionality for django version >= 2.0. The widget implements flatpickr to display date-pickers in django model forms and custom forms which can be configured easily for date-range selection. For Bootstrap date-picker see django-bootstrap-datepicker-plus.

Flatpickr Red Theme Flatpickr Default Theme Flatpickr Dark Theme

Demo

Getting Started

Prerequisites

  • Python >= 3.7
  • Django >= 2.0

Installing

Install the PyPI package via pip.

pip install django-flatpickr

Add django_flatpickr to INSTALLED_APPS in your settings.py file.

INSTALLED_APPS = [
    # Add the following
    "django_flatpickr",
]

Usage

The HTML template must have the following to render the flatpickr widget. A better example is here.

<!-- File: myapp/custom-form.html -->
{{ form.media }}  {# Adds all flatpickr JS/CSS files from CDN #}
{{ form.as_p }}   {# Renders the form #}

You can use it with generic views without a model form. It can also be used with custom forms and model forms as below.

Usage in Custom Form

# File: forms.py
from django_flatpickr.widgets import DatePickerInput, TimePickerInput, DateTimePickerInput
from .models import Event
from django import forms

class ToDoForm(forms.Form):
    todo = forms.CharField(widget=forms.TextInput())
    date = forms.DateField(widget=DatePickerInput())
    time = forms.TimeField(widget=TimePickerInput())
    datetime = forms.DateTimeField(widget=DateTimePickerInput())


# File: views.py
class CustomFormView(generic.FormView):
    template_name = "myapp/custom-form.html"
    form_class = ToDoForm

See models.py, forms.py, views.py, custom-form.html for more details.

Usage in Model Form

# File: forms.py
from django_flatpickr.widgets import DatePickerInput, TimePickerInput, DateTimePickerInput
from .models import Event
from django import forms

class EventForm(forms.ModelForm):
    class Meta:
        model = Event
        fields = ["name", "start_date", "start_time", "start_datetime"]
        widgets = {
            "start_date": DatePickerInput(),
            "start_time": TimePickerInput(),
            "start_datetime": DateTimePickerInput(),
        }


# File: views.py
class UpdateView(generic.edit.UpdateView):
    model = Event
    form_class = EventForm

See models.py, forms.py, views.py, event_form.html for more details.

Implement date-range-picker

DatePickers can be linked together to select a date-range, time-range or date-time-range without writing a single line of JavaScript.

# File: forms.py
from django_flatpickr.widgets import DatePickerInput, TimePickerInput
from django import forms

class EventForm(forms.ModelForm):
    class Meta:
        model = Event
        fields = ["name", "start_date", "end_date", "start_time", "end_time"]
        widgets = {
            "start_date": DatePickerInput(),
            "end_date": DatePickerInput(range_from="start_date"),
            "start_time": TimePickerInput(),
            "end_time": TimePickerInput(range_from="start_time"),
        }

Customization

To customize the look and features of flatpickr widget copy the settings block to your settings.py file and customize it. Settings applies globally to all flatpickr widgets used in your site.

You can set date and event hook options using JavaScript.

window.djangoFlatpickrOptions = {
    onChange: function (selectedDates) { console.log(selectedDates) }
}

Customize single input

from django_flatpickr.schemas import FlatpickrOptions

class ToDoForm(forms.Form):
    todo = forms.CharField(widget=forms.TextInput())
    start_date = forms.DateField(widget=DatePickerInput(
        attrs = {"class": "my-custom-class"}, # input element attributes
        options=FlatpickrOptions(altFormat="m/d/Y"),
    ))

Similarly set date and event hook options using JavaScript.

window.djangoFlatpickrOptions_start_date = {
    onChange: function (selectedDates) { console.log(selectedDates) }
}

Localization

Use locale option, see available localization options.

License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].