2013-02-12 38 views
0

在我有一個日期時間字段的模型。但在我的模板中,我有單獨的日期和時間供用戶輸入。我如何給當前時間作爲默認值。如何給當前時間有默認

Models.py 

datetime_reading=models.DateTimeField() 

truepower_reading=models.DecimalField(verbose_name="True Power Reading(KWH)",max_digits=6,decimal_places=2,blank=False,null=False) 
apparentpower_reading=models.DecimalField(verbose_name="Apparent Power Reading(KVAH)",max_digits=6,decimal_places=2,blank=False,null=False) 
truepower_consumed=models.DecimalField(max_digits=6,decimal_places=2,blank=False,null=False) 
voltage_reading=models.IntegerField(blank=False,null=False) 
powerfactor=models.DecimalField(max_digits=3,decimal_places=2) 




Forms.py 

Date=forms.DateField() 
Time=forms.TimeField() 
fields = ('date', 'time', 'truepower_reading', 'apparentpower_reading',"voltage_reading") 
class Meta: 
    model=KEBReading 
    exclude=("truepower_consumed","powerfactor","datetime_reading") 
    widgets = { 

       "date" : forms.widgets.DateInput(format="%d/%m/%Y"), 
       "time" : forms.widgets.TimeInput(format="%H:%M") 
       } 


views.py 
def KEBReading1(request): 
q2=KEBReading.objects.all().order_by('datetime_reading')[:30] 

form = KEBReading_form() 
monthform=MonthForm() 
if request.method == "POST": 
    if request.POST.get('KEBsubmit'): 
     form = KEBReading_form(request.POST) 
     if form.is_valid(): 
      try: 
       prevdate=KEBReading.objects.latest("datetime_reading")     
       date=form.cleaned_data["Date"] 
       print type(date) 

       time=form.cleaned_data["Time"] 
       print type(time) 

       kr_truepower_reading = form.cleaned_data["truepower_reading"] 
       kr_apparentpower_reading = form.cleaned_data["apparentpower_reading"] 

       truepower_consumed1=kr_truepower_reading-prevdate.truepower_reading 
       powerfactor1=((kr_truepower_reading-prevdate.truepower_reading)/(kr_apparentpower_reading-prevdate.apparentpower_reading))  
       form1=form.save(commit=False) 
       print "tee" 
       form1.datetime_reading=datetime.combine(date,time) 
       print form1.datetime_reading 



       form1.truepower_consumed=truepower_consumed1 
       form1.powerfactor=powerfactor1 

       print form1.powerfactor 


       form1.save() 

這是我的查看代碼。我試圖從表格中獲取輸入的時間。但是我給當前時間讓用戶輸入。

views.py 


q2=KEBReading.objects.all().order_by('datetime_reading')[:30] 

form = KEBReading_form() 
monthform=MonthForm() 
if request.method == "POST": 
    if request.POST.get('KEBsubmit'): 
     form = KEBReading_form(request.POST) 
     if form.is_valid(): 
      try: 
       prevdate=KEBReading.objects.latest("datetime_reading")  
       time = datetime.datetime.now().strftime("%I") 
       data = {'Time':time} 
       form = KEBReading_form(data)  


       date=form.cleaned_data["Date"] 
       print type(date) 

       time=form.cleaned_data["Time"] 
       print type(time) 

       kr_truepower_reading = form.cleaned_data["truepower_reading"] 
       kr_apparentpower_reading = form.cleaned_data["apparentpower_reading"] 

我在上面提到的觀點中給出了它。我是否必須在表格中指定sumthin以及?

我想要小時,分鐘和secoond。是這樣嗎

form = KEBReading_form() 
time1 = datetime.datetime.now() 
time=time1.hour,time1.minute,time1.second 

data = {'Time':time} 
print data 
form = KEBReading_form(data) 
+0

將如何填充當前時間到指定的字段的形式。不要v指定? – prithu 2013-02-12 07:08:25

回答

2

documentation描述了在窗體中設置初始值。

views.py

def view_name(request):  
    q2=KEBReading.objects.all().order_by('datetime_reading')[:30] 
    time = datetime.datetime.now().strftime("%I:%M") 
    data = {'Time':time} 
    form = KEBReading_form(data) 
    monthform=MonthForm() 

    if request.method == "POST": 
     ........... 

    return render(request, 'page.html', {'form':form,}) 
+0

我在哪裏添加? – prithu 2013-02-12 06:04:50

+0

我用文檔鏈接更新了答案,希望您不要介意。 – 2013-02-12 22:54:27

+0

謝謝@JoshSmeaton – catherine 2013-02-13 00:37:45

相關問題