如何在Django Forms中设置当前年份?

时间:2016-02-19 19:02:09

标签: django time django-forms

我对django-from有点麻烦。我想从1960年到今年获得Integer字段。

forms.py 中我有:

year = forms.IntegerField(label='year', min_value=1960, max_value=datetime.now().year)

它有效!

<input id="id_year" max="2016" min="1960" name="year" type="number">

但是如果我在 datetime.now()上替换 datetime.now()。 second < / strong> ,问题变得明显

服务器启动时填写的字段的值(现在我使用django开发服务器)

February 19, 2016 - 18:54:05
Djangoversion 1.9.1, using settings Test.settings
Starting development server at http://localhost:8000/
Quit the server with CONTROL-C.

现在在HTML模板中我得到了

<input id="id_year" max="5" min="1960" name="year" type="number">

但是实时 18:54:18

问题:如何自动更改年份?

1 个答案:

答案 0 :(得分:2)

通过它的声音,您担心只有在服务器启动时才会更改该值,您可以通过在表单的init方法中设置值来解决此问题

class MyForm(forms.Form):
    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.fields['year'].max_value = datetime.now().year