Skip to main content

django-crud-views-extensions

Incubator for django-crud-views extension apps. Apps here are named as if they lived in django-crud-views itself (crud_views_widget_*); once mature, an app may move into the main package with no code changes for consuming projects.

Requires django-crud-views >= 0.29.

crud_views_widget_datetimepicker

Form widgets wrapping the xdsoft jQuery DateTimePicker: DateTimePickerInput, DatePickerInput, TimePickerInput.

Prerequisite: jQuery loaded in your base template before {% cv_js %} (same rule as django-crud-views core).

Install

pip install django-crud-views-extensions

INSTALLED_APPS = [
    ...
    "crud_views",
    "crud_views_widget_datetimepicker",
]

That's it — the widget's JS/CSS are delivered through {% cv_js %}/{% cv_css %} on every page (including crud-views modals) via the asset registry. By default the plugin files load from jsDelivr (CDN mode).

Use

from crud_views_widget_datetimepicker.widgets import DateTimePickerInput

class AppointmentForm(CrispyModelForm):
    class Meta:
        model = Appointment
        fields = ["title", "starts_at"]
        widgets = {"starts_at": DateTimePickerInput()}

Options: config={...} (any xdsoft option, e.g. step, minTime), and DateTimePickerInput(fix_year=2026) to lock the picker to one calendar year.

Formats and language

The picker format follows the active request language: the widget takes the first of the locale's DATE_INPUT_FORMATS / DATETIME_INPUT_FORMATS / TIME_INPUT_FORMATS that the picker can reproduce (time prefers a format without seconds) and renders the value with that same format, so whatever the picker writes is accepted on submit — e.g. 2026-10-15 under en, 15.10.2026 under de.

To pin a format, pass it to the picker (config={"format": "d.m.Y"} or settings DEFAULTS) or to Django (DatePickerInput(format="%d.%m.%Y")). The widget renders and parses a pinned format itself, so it works in every locale. Supported tokens: d m Y y H i s; a picker format with other tokens is passed to the picker unchanged and must then be accepted by the field's input_formats.

The picker language is the active request language unless LANG (settings) or config={"lang": ...} sets one. The plugin's language is page-global: one field with its own lang switches every picker on that page.

Settings

CRUD_VIEWS_DATETIMEPICKER = {
    "SOURCE": "cdn",        # "cdn" (default) | "vendored"
    "VERSION": "2.5.21",    # pinned upstream version, used by both modes
    "CDN_BASE": "https://cdn.jsdelivr.net/npm/jquery-datetimepicker@{version}/build/",
    "VENDOR_DIR": None,     # required for vendored mode; must be on STATICFILES_DIRS
    "EMIT": True,           # False: keep registered but let a bundler deliver the files
    "LANG": None,           # None: the active request language
    "DEFAULTS": {},         # merged into every widget's picker config
}
CRUD_VIEWS_DATETIMEPICKER = {"SOURCE": "vendored", "VENDOR_DIR": BASE_DIR / "vendored_static"}
STATICFILES_DIRS = [BASE_DIR / "vendored_static"]

python manage.py cv_vendor_datetimepicker

A system check warns on startup when the vendored files are missing (crud_views.W330) or don't match the pinned VERSION (crud_views.W331).

django-pipeline

CDN mode cannot be bundled. For pipeline, use vendored mode and build your bundle from the same path list the app uses internally — then switch off tag emission:

from crud_views_widget_datetimepicker.assets import source_files

_dtp = source_files("2.5.21", minified=False)   # pipeline minifies itself
PIPELINE = {
    "JAVASCRIPT": {"main": {"source_filenames": [..., *_dtp["js"]], ...}},
    "STYLESHEETS": {"main": {"source_filenames": [..., *_dtp["css"]], ...}},
}
CRUD_VIEWS_DATETIMEPICKER = {"SOURCE": "vendored", "VENDOR_DIR": ..., "EMIT": False}

Keep the order jQuery → plugin → init.js in your bundle (source_files() already returns plugin before init.js).

Metadata

Release files for django-crud-views-extensions 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-crud-views-extensions 0.2.0
File Size Uploaded
django_crud_views_extensions-0.2.0.tar.gz 71.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-crud-views-extensions 0.2.0
File Interpreter ABI Platform
django_crud_views_extensions-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 83.3 kB

Release files / django_crud_views_extensions-0.2.0.tar.gz

Download URL django_crud_views_extensions-0.2.0.tar.gz
Size 71.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a2d01e19ebbbae9b2f894b71f6d610bf26502589d05af918c6c5ab36c906fa71
BLAKE2b-256 checksum
How to use checksums
7b342df6ab867ca03e7398604fdc65e5d54c269fc96cb17e7a136c621c2e0c86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / django_crud_views_extensions-0.2.0-py3-none-any.whl

Download URL django_crud_views_extensions-0.2.0-py3-none-any.whl
Size 11.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
786aa65d4d3c45050044b81c99c56582500792d36436589f67e198e503f396ac
BLAKE2b-256 checksum
How to use checksums
d3ef671d7cfe8a6ed4bc35c28fcd1993a07f4fdc5fb90ef850014a66c429c92b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

This release

0.2.0 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page