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 的原因相同)。