根据Django在SelectDateWidget(https://docs.djangoproject.com/en/1.8/ref/forms/widgets/#selectdatewidget)上的文档,如果不需要empty_label
,则会显示DateField
。我注意到如果需要DateField
,则小部件上的默认值将为January
,1
和<current-year>
。有没有一种方法可以使DateField
成为必需,但是在初始表单上显示带有empty_label
的小部件(例如-----)?
最佳答案
不幸的是,仅在不需要字段时才使用SelectDateWidget
中的空标签,但是您可以通过子类化SelectDateWidget
并覆盖create_select
方法来简单地更改它:
class MySelectDateWidget(SelectDateWidget):
def create_select(self, *args, **kwargs):
old_state = self.is_required
self.is_required = False
result = super(MySelectDateWidget, self).create_select(*args, **kwargs)
self.is_required = old_state
return result
但是在这种情况下,您可能还必须覆盖字段的验证,因此它将抛出错误,要求输入该字段,而不是在将select留在空白值上时,该选择无效。
关于python - 在Django的必需selectDateWidget上显示empty_label,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32378379/