django 模型选择列表 - 降序输出
django models choices list - decending order output
我昨天问过这个。
我现在必须在 models.py 中显示选择列表的代码是:
YOB_TYPES = Choices(*(
((0, 'select_yob', _(' Select Year of Birth')),
(2000, 'to_present', _('2000 to Present'))) +
tuple((i, str(i)) for i in xrange(1990, 2000)) +
((1, 'unspecified', _('Prefer not to answer')),))
)
....
year_of_birth_type = models.PositiveIntegerField(choices=YOB_TYPES, default=YOB_TYPES.select_yob, validators=[MinValueValidator(1)])
....
选择列表现在显示出生年份 运行 从 1990 到 1999(升序),如下所示:
如何更改代码,使出生日期的年份显示为1999年至1990年(降序),如下所示:
我已搜索但找不到与我的问题相关的任何内容 - 反转 ( .reverse() ) 元组输出 - 可能我搜索了错误的主题。
看到这一行:
tuple((i, str(i)) for i in xrange(1990, 2000)) +
像这样调整:
tuple((i, str(i)) for i in xrange(1999, 1989, -1) +
第三个参数指定您的 "step",在本例中为 -1(反向)。请记住,对于 xrange,第二个参数不包含在迭代中,因此使用 1989 而不是 1990(这与之前使用 2000 而不是 1999 的原因相同)。
我昨天问过这个
我现在必须在 models.py 中显示选择列表的代码是:
YOB_TYPES = Choices(*(
((0, 'select_yob', _(' Select Year of Birth')),
(2000, 'to_present', _('2000 to Present'))) +
tuple((i, str(i)) for i in xrange(1990, 2000)) +
((1, 'unspecified', _('Prefer not to answer')),))
)
....
year_of_birth_type = models.PositiveIntegerField(choices=YOB_TYPES, default=YOB_TYPES.select_yob, validators=[MinValueValidator(1)])
....
选择列表现在显示出生年份 运行 从 1990 到 1999(升序),如下所示:
如何更改代码,使出生日期的年份显示为1999年至1990年(降序),如下所示:
我已搜索但找不到与我的问题相关的任何内容 - 反转 ( .reverse() ) 元组输出 - 可能我搜索了错误的主题。
看到这一行:
tuple((i, str(i)) for i in xrange(1990, 2000)) +
像这样调整:
tuple((i, str(i)) for i in xrange(1999, 1989, -1) +
第三个参数指定您的 "step",在本例中为 -1(反向)。请记住,对于 xrange,第二个参数不包含在迭代中,因此使用 1989 而不是 1990(这与之前使用 2000 而不是 1999 的原因相同)。