Django Choices:我选择的一个项目将标签复制到valu上

2024-06-28 19:18:02 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题很奇怪。我正在使用django-choices模块(v1.3),并定义了一组如下所示的选项:

class BreaktimeChoices(DjangoChoices):
    BREAKTIME_NONE = ChoiceItem(value=datetime.time(0,0), label=_('none'))
    BREAKTIME_15_MIN = ChoiceItem(value=datetime.time(0,15), label=_('15 minutes'))
    BREAKTIME_30_MIN = ChoiceItem(value=datetime.time(0,30), label=_('30 minutes'))
    BREAKTIME_45_MIN = ChoiceItem(value=datetime.time(0,45), label=_('45 minutes'))
    BREAKTIME_1_HOUR = ChoiceItem(value=datetime.time(1,0), label=_('1 hour'))

当我把它放入一个表单(使用select输入)时,我注意到标签是正确的,但是BREAKTIME_NONE的值是“NONE”(而不是预期的00:00:00)。当打印出BreaktimeChoices.choices时,我得到这个:

^{pr2}$

如您所见,datetime.time(0,0)已更改为__proxy__对象(可翻译字符串)。更重要的是,指向此代理的指针地址与此选项的label值相同。我在整个项目中都使用DjangoChoices,以前从未遇到过这个问题。其他人见过类似的东西吗?在


Tags: 模块djangononedatetimetimevalue选项min
1条回答
网友
1楼 · 发布于 2024-06-28 19:18:02

后来发现这个问题在以后的版本中得到了修复——将django-choices升级到最新版本。在

问题是一些代码看起来像这样:

if not self.value:
    self.value = self.label

…并且time(0,0)在该上下文中被计算为False。在

相关问题 更多 >