我的一些模型有postgres特定的django.contrib.postgres.fields.DateTimeRangeField
,这些字段显示在相应的管理面板中。我预计范围表单将由两个Django风格的日期时间选择器组成,一个单独的日期部分和一个单独的时间部分(就像DateTimeField
一样)。然而,我得到了两个文本输入,它们期望输入的是一种非常特殊的格式。有没有遗漏或需要单独配置的内容?
相关代码为:
from django.contrib.postgres.fields import DateTimeRangeField
...
class MyModel(models.Model):
time_off = DateTimeRangeField()
管理员:
@register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
pass
发布于 2019-12-16 13:56:42
您正在寻找SplitDateTimeWidget。
只需将管理部分更改为:
class MyModelAdminForm(forms.ModelForm):
class Meta:
model = MyModel
widgets = {
'time_off': RangeWidget(SplitDateTimeWidget())
}
@register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
form = MyModelAdminForm
如果愿意,也可以使用formfield_overrides
覆盖小部件。
https://stackoverflow.com/questions/59357764
复制