About DateTime Input Widget

Use the type="datetime-local" for the date time fields to show a browser-native widget instead of text input.

from django import forms
from .models import Post

class CustomDateTimeField(forms.DateTimeField):
    widget = forms.DateTimeInput(attrs={"type": "datetime-local"})

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = [
            "title",
            "content",
            "published_from",
        ]
        widgets = {
            "published_from": CustomDateTimeField,
        }

Tips and Tricks Programming Development Django 5.2 Django 4.2 Django 3.2