我正在尝试将DateTimeField
的{{1}}限制为具有以下选项TimeField
,06:00
,11:00
的选择字段。到目前为止,我尝试了16:00
并最终解决了这个问题。
formfield_overrides
我想知道我是否覆盖formfield_overrides = {
models.DateTimeField: {'widget': SplitDateTimeWidget(
time_attrs={"choices":settings.FEATURE_HOURS}
)}
}
的{{1}}包装器。还是可以扩展SplitDateTimeWidget
并覆盖所有默认行为并实现我想要的?如果是,我该怎么办?
答案 0 :(得分:0)
好吧,我创建了自定义类,该类扩展了admin.widgets.AdminSplitDateTime
并在formfield_overrides
中使用它
class CustomAdminSplitDateTime(admin.widgets.AdminSplitDateTime):
def __init__(self, attrs=None):
time_widget = forms.Select(choices=settings.FEATURE_HOURS)
forms.MultiWidget.__init__(self, [admin.widgets.AdminDateWidget, time_widget], attrs)
像这样在admin
类中使用它:
formfield_overrides = {
models.DateTimeField: {'widget': CustomAdminSplitDateTime()}
}
因此FEATURE_HOURS
元组必须是时间对象。