C.B. C.B. - 2 months ago 28
Python Question

Django form.as_p DateField not showing input type as date

Working on my first django app, and I have a model defined with some

, and then a
off of that model i.e.


class MyModel(models.Model):
my_date = models.DateField('my date')

class MyModelForm(ModelForm):
class Meta:
model = MyModel
fields = '__all__'


def show(request):
form = MyModelForm
template_name = 'myapp/show.html'
return render(request,template_name,{'form':form})

and then in my html I use the
to have django render the form for me

<form action="/show/" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />

But the
have input type text, not date. Is there a way to change this?


You can create a custom widget:

from django import forms

class DateInput(forms.DateInput):
    input_type = 'date'

class MyModelForm(forms.ModelForm):
    class Meta:
        model = MyModel
        fields = '__all__'
        widgets = {
            'my_date': DateInput()