【问题标题】:Django - birthdate fildset as form widgetDjango - 表单小部件中的生日字段集
【发布时间】:2011-09-22 12:08:39
【问题描述】:

如果我有 forms.py:

birthdate = forms.DateTimeField()

和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>

我需要创建一个新的小部件还是有一个答案?如果没有答案,我将不胜感激如何做到这一点的每一个建议

【问题讨论】:

    标签: django forms


    【解决方案1】:

    对于版本 >= 1.9

    from django import forms
    
    class Some_Form(forms.Form):
        birthday = forms.DateField(
            widget=forms.SelectDateWidget
            )
    

    使用 jquery-ui

     $(document).ready(function(){
             $('.datepicker').datepicker({ dateFormat: 'yy-mm-dd' });
        })
    

    【讨论】:

      【解决方案2】:

      有一个内置的小部件已经可以做到这一点。

      from django.forms import extras
      
      class SomeForm(forms.ModelForm):
          birthdate = forms.DateField(widget=extras.SelectDateWidget)
      

      【讨论】:

      • 这真的很有帮助!很多人错过了这个不错的额外小部件
      • 更新版本 >= 1.9。 SelectDateWidget 位于 django.forms 中,不再位于 django.forms.extras 中。
      【解决方案3】:

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

      【讨论】:

      • 我不喜欢这个日期选择器。我喜欢 Facebook 之类的:plugins.jquery.com/project/birthdaypicker。看来我需要在这方面做一些工作,但不是现在。我需要睡觉,然后走。我会使用你的建议。谢谢。稍后再见。
      猜你喜欢
      • 2013-04-03
      • 2015-10-06
      • 2012-08-16
      • 2023-04-06
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 2011-03-31
      • 2020-04-05
      相关资源
      最近更新 更多