Django 中是否有可用于“DurationField”的小部件?

Dev*_*yar 6 django django-admin django-widget

我即将DurationField为管理站点添加 的小部件,并希望持续时间字段的小部件用于输入。

问题陈述

PromoCode下面的类中有DurationField就是duration。但在管理中它显示TextInput为输入。

class PromoCode(models.Model):
    """
    Promo Code model to maintain offers
    """
    code = models.CharField(_("Code"), max_length=60, help_text="Promo code")
    # Validations and constraints for promo code
    start_date = models.DateField(_("Start date"), null=True, blank=True, help_text="Start date of promo code offer")
    end_date = models.DateField(_("End date"), null=True, blank=True, help_text="End date of promo code offer")
    duration = models.DurationField(_("Duration"), null=True, blank=True, help_text="Validity period of promo code")
    ...
    ...

Run Code Online (Sandbox Code Playgroud)

管理员.py

class PromoCodeAdmin(admin.ModelAdmin):
    """
    Model admin for promocodes
    """
    list_display = ('code', 'description', 'start_date', 'end_date',)
    fields = (
    'code', 'description', 'discount', 'start_date', 'end_date', 'duration', 'sitewide_countdown', 'user_countdown',
    'coin_currencies', 'fiat_currencies',)

Run Code Online (Sandbox Code Playgroud)

下图仅供参考,duration字段不是人类可读的格式。

参考图片

预期行为

DurationField将 的小部件添加到管理表单以使其易于阅读和编辑的最佳方法是什么?目前,管理员很难添加持续时间。

Sol*_*lal 1

您可以@pre_save在管理中使用并将持续时间转换为您想要的可读格式。

  • 实际上我想要表单输入小部件。处理这个持续时间字段 (2认同)