我有一段时间的Django表单字段,其中我使用time.strfrtime()函数将初始值设置为当前时间。
使用这种方法,当我第一次加载Django应用程序时(通过执行),该字段最初会正确地填充为当前时间。但是,如果我随后重新加载页面,表单域无法更新当前时间,而是重复返回应用程序首次启动的时间。但是,如果我修改了我的某个Django文件,比如forms.py或views.py,那么当前时间就会被正确刷新。
在forms.py中:
class EventForm(ModelForm):
end_time = forms.TimeField(label="Current time", initial=strftime("%I:%M %p"))在views.py中:
def index(request):
event_form = EventForm()如何让end_time字段的初始值始终更新到当前时间?
注意:我知道我可以通过向我的event_form = EventForm()代码传递初始数据来修复这个问题,例如:
event_form = EventForm(initial={'end_time':strftime("%I:%M %p")})但是有没有更好的方法呢?当前时间不会自动更新的幕后情况是什么?
发布于 2016-09-27 09:39:16
需要在类的__init__()方法中设置。
from time import strftime
from django import forms
class EventForm(forms.Form):
end_time = forms.TimeField(label='Current time')
def __init__(self, *args, **kwargs):
kwargs.update(initial={
'end_time': strftime('%I:%M %p')
})
super(EventForm, self).__init__(*args, **kwargs)https://stackoverflow.com/questions/39714253
复制相似问题