首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django表单域初始strfrtime值未更新

Django表单域初始strfrtime值未更新
EN

Stack Overflow用户
提问于 2016-09-27 08:19:13
回答 1查看 739关注 0票数 1

我有一段时间的Django表单字段,其中我使用time.strfrtime()函数将初始值设置为当前时间。

使用这种方法,当我第一次加载Django应用程序时(通过执行),该字段最初会正确地填充为当前时间。但是,如果我随后重新加载页面,表单域无法更新当前时间,而是重复返回应用程序首次启动的时间。但是,如果我修改了我的某个Django文件,比如forms.py或views.py,那么当前时间就会被正确刷新。

在forms.py中:

代码语言:javascript
复制
class EventForm(ModelForm):

      end_time = forms.TimeField(label="Current time",   initial=strftime("%I:%M %p"))

在views.py中:

代码语言:javascript
复制
def index(request):

    event_form = EventForm()

如何让end_time字段的初始值始终更新到当前时间?

注意:我知道我可以通过向我的event_form = EventForm()代码传递初始数据来修复这个问题,例如:

代码语言:javascript
复制
event_form = EventForm(initial={'end_time':strftime("%I:%M %p")})

但是有没有更好的方法呢?当前时间不会自动更新的幕后情况是什么?

EN

回答 1

Stack Overflow用户

发布于 2016-09-27 09:39:16

需要在类的__init__()方法中设置。

代码语言:javascript
复制
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)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39714253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档