Initializing DateTimeField in django forms.

150 views
Skip to first unread message

prince gosavi

unread,
Feb 19, 2018, 9:22:05 AM2/19/18
to Django users
Hi,

I am building a simple django application for user feedback. And I have created a form for that purpose.

Here is the snippet:
# my_app/forms.py

from django import forms
import datetime
class UserQueryForm(forms.Form):
    date
= forms.DateField(initial=datetime.date.today) # need help
    username
= forms.CharField(label='Username:', max_length=15)
    mobilenos
= forms.CharField(max_length=10, label='Mobile Nos')


And here is my template:
<!--my_app/templates/my_app/form.html-->
<form action="" method="POST">
    {% csrf_token %}
   
<h1>Date:</h1>
    {{ form.date }}
    {{ form.username.label}}
    {{ form.username }}
   
<br />
    {{ form.mobilenos.label}}
    {{ form.mobilenos}}
   
<br />
   
<input type="submit" value="Submit">
 
</form>

I would like to initialize the date so that it is automatically set to today's date when the page loads.
All suggestions are welcomed.

Regards,

Rajkumar

Etienne Robillard

unread,
Feb 19, 2018, 9:41:08 AM2/19/18
to prince gosavi, django...@googlegroups.com

How does your view looks like?

Etienne

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/a5a9a34f-f21e-48fc-bc3c-7ec25c73b017%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
Etienne Robillard
tka...@yandex.com
https://www.isotopesoftware.ca/

prince gosavi

unread,
Feb 19, 2018, 10:31:54 AM2/19/18
to Django users
# my_app/views.py
from django.shortcuts import render, get_object_or_404

# Create your views here.
from .models import User
from .forms import UserQueryForm
def home(request): # home page
    a_list
= User.objects.filter()
   
for item in a_list:
        context
= {'username': item.username,'contact_info': item.mobile_nos, 'req_date': item.request_date}
       
print(item.username)
       
return render(request, 'userinfo/information.html', context)

def query_form(request): # the concerned view
   
if request.method == 'POST':
        form
= UserQueryForm(request.POST)
       
if form.is_valid():
            get_date
= request.POST['date']
            get_username
= request.POST['username']
            get_mobile_nos
= request.POST['mobilenos']
            context
={'username':get_username, 'contact_info': get_mobile_nos, 'req_date': get_datetime}
           
return render(request, 'userinfo/information.html', context)
   
else:
        form
= UserQueryForm()
   
return render(request, 'userinfo/form.html',{ 'form': form })

Etienne Robillard

unread,
Feb 19, 2018, 11:07:07 AM2/19/18
to prince gosavi, django...@googlegroups.com

i think you need to replace:

form = UserQueryForm()

with

form = UserQueryForm(initial={'date': date})

See: https://docs.djangoproject.com/en/2.0/ref/forms/api/

Etienne

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.

For more options, visit https://groups.google.com/d/optout.

prince gosavi

unread,
Feb 19, 2018, 11:37:40 AM2/19/18
to Django users
That did the job.But I would like to get rid of the 'Field' type view that surrounds the date. As I only want to display the date.
Is there a way to do it in the form itself or any way to change it in the templates?


On Monday, February 19, 2018 at 7:52:05 PM UTC+5:30, prince gosavi wrote:
django.png

Jani Tiainen

unread,
Feb 19, 2018, 1:11:39 PM2/19/18
to django...@googlegroups.com
Hi.

If you want to display only date why aren't you doing it in template rather than trying to make form to just display value.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.

Ryan Nowakowski

unread,
Feb 20, 2018, 5:58:37 PM2/20/18
to django...@googlegroups.com
You could make the date field "disabled":
https://docs.djangoproject.com/en/2.0/ref/forms/fields/#disabled
> > I would like to initialize the *date *so that it is automatically set to
> > today's date when the page loads.
> > All suggestions are welcomed.
> >
> > Regards,
> >
> > Rajkumar
> >
>
> --
> You received this message because you are subscribed to the Google Groups "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages