首页 > 解决方案 > 如何让 wagtail 的 TimeInput 接受秒数?

问题描述

TimeField在我的模型中使用,但我无法在 wagtail 中填充秒数wagtail.contrib.modeladmin.options.ModelAdmin。我当前ModelAdmin的代码是:

@modeladmin_register
class ScheduleAdmin(ModelAdmin):
    model = ScheduleCell
    menu_label = _("Schedule") 
    menu_icon = 'date'  
    menu_order = 200  
    add_to_settings_menu = False 
    exclude_from_explorer = False 
    list_display = ('start_time', 'end_time', 'page', 'output_devices')
    search_fields = ('page__title', )

目前的结果是

在此处输入图像描述

当我尝试手动将秒数写入输入时 - wagtail 不允许这样做。

如何解决?

标签: wagtail

解决方案


日期选择器小部件不支持添加秒数,因此您需要覆盖它以使用基本的文本输入小部件。您可以通过向panels您的模型添加一个定义来做到这一点(在下一个 Wagtail 版本中,Wagtail 2.5,也可以在 ModelAdmin 类上定义它),并在那里指定小部件:

from django import forms
from wagtail.admin.edit_handlers import FieldPanel


class ScheduleCell(models.Model):
    # ... field definitions here ...

    panels = [
        # ...
        FieldPanel('start_time', widget=forms.TextInput),
        FieldPanel('end_time', widget=forms.TextInput),
        # ...
    ]

推荐阅读