【问题标题】:Change label on required select date widget in django在 django 中更改所需选择日期小部件的标签
【发布时间】:2019-05-12 16:40:02
【问题描述】:

所以我想在 django 上更改我的选择日期小部件上的标签,最好是当前日期,但即使只是说“月”“年”等就足够了。我不希望它只说“1980 年 1 月 1 日”,因为这是默认设置。我知道要在我的小部件中使用 empty_label,我的字段在我的模型中必须为空白或不需要。但是,我的字段是必需的,但我希望该字段与另一个非必需小部件匹配。这是我的表单代码:

class AnimalForm(forms.ModelForm):
class Meta:
    model = Animal
    fields = ['animal_id','species_strain','dob', 'dod', 'sex', 'source', 'parents', 'labloc', 'notes']
    widgets ={
                "dod":forms.SelectDateWidget(years=range(1980,2050), empty_label=("Year", "Month", "Day")),
                "dob":forms.SelectDateWidget(years=range(1980,2050), empty_label=("Year", "Month", "Day")),


    }

为了澄清,dob 是必需的,而 dod 不是。但我希望它们至少在网页上看起来一样。如果可能的话,我希望将默认值设为当前日期,但我至少需要能够先编辑这些字段。那么我该怎么做呢?我试过用谷歌搜索它无济于事。谢谢!

【问题讨论】:

    标签: django forms widget


    【解决方案1】:

    您可以使用 datepicker 中的 datetimepicker-plus 它会为您提供当前时间和当前日期。您可以点击此链接https://github.com/monim67/django-bootstrap-datepicker-plus

    【讨论】:

      【解决方案2】:

      您可以通过

      向表单提供[initial][1]
      f = AnimalForm(initial={
          'dod': datetime.today(),
          'dob': datetime.today(),
      })
      

      【讨论】:

      • 嘿,非常感谢!所以我得到一个“模块'datetime'没有属性'today'错误,但我认为一旦修复它应该可以工作!我已经导入了日期时间,我是否缺少其他要导入的东西?
      • 您可能需要from datetime import datetime。无论如何,这只是为了展示您如何获得一般的日期。您可能想使用from django.utils import timezone,然后使用timezone.now().date()
      猜你喜欢
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 2010-10-14
      相关资源
      最近更新 更多