Django - birthdate fildset作为表单小部件

krz*_*hub 8 forms django

如果我有forms.py:

birthdate = forms.DateTimeField()
Run Code Online (Sandbox Code Playgroud)

和HTML:

<fieldset class='birthday-picker'>
    <select class='birth-year' name='birth[year]'></select>
    <select class='birth-month' name='birth[month]'></select>
    <select class='birth-day' name='birth[day]'></select>
    <input type='hidden' name='birthdate' />
</fieldset>
Run Code Online (Sandbox Code Playgroud)

我是否需要创建一个新的小部件或者有一个答案?如果没有答案,我会很感激每一个建议如何做到这一点

jar*_*red 14

有一个内置的小部件已经做到了.

from django.forms import extras

class SomeForm(forms.ModelForm):
    birthdate = forms.DateField(widget=extras.SelectDateWidget)
Run Code Online (Sandbox Code Playgroud)

  • 更新版本 &gt;= 1.9。SelectDateWidget 在 django.forms 中,不再在 django.forms.extras 中。 (3认同)

jam*_*mon 1

如果 html 不必完全像这样,您可能会更轻松地使用纯 JavaScript 解决方案(例如jquery datepicker)或使用djangos 自己的 admin datewidget