datetime picker in django without using forms.py

555 Views Asked by At

I want to add a datetime picker input field in my django project.

I found this tutorial that offers a few ways but all of them are using forms.py as following:

from django import forms

class DateForm(forms.Form):
    date = forms.DateTimeField(
        input_formats=['%d/%m/%Y %H:%M'],
        widget=forms.DateTimeInput(attrs={
            'class': 'form-control datetimepicker-input',
            'data-target': '#datetimepicker1'
        })
    )

But I am not using forms in my project. I am using the function views. I can't find an example of how to implement a DateTime picker in this way?!

any help is appreciated.

1

There are 1 best solutions below

2
On

Alright so heres an example django form you can create and use in your view:

from django import forms

class MyForm(forms.Form):
    datetime = forms.DateField(required=False, widget=forms.SelectDateWidget(years=range(2000, current_year))) # use this widget 
    # other fields you want

then in your views.py

from .forms import MyForm

def submit_form_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('home') # or somewhere else
    else:
        form = MyForm()
    return render(request, 'your_form_view.html', {'form': form})

then just render the form as you would regularly in your_form_view.html:

<form class="main-form" method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button class="main-button" type="submit">Save</button>
</form>