【问题标题】:django models choices list - decending order outputdjango 模型选择列表 - 降序输出
【发布时间】:2015-03-24 22:10:01
【问题描述】:

我昨天问过这个SO question

我现在必须在我的 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() ) 元组输出 - 也许我正在搜索错误的主题。

【问题讨论】:

    标签: django django-models django-1.7


    【解决方案1】:

    看到这一行:

    tuple((i, str(i)) for i in xrange(1990, 2000)) +
    

    这样调整:

    tuple((i, str(i)) for i in xrange(1999, 1989, -1) +
    

    第三个参数指定您的“步骤”,在本例中为 -1(反向)。请记住,对于 xrange,第二个参数不包含在迭代中,因此请使用 1989 而不是 1990(与您之前使用 2000 而不是 1999 的原因相同)。

    【讨论】:

    • 约瑟夫,谢谢你的回答。这真的帮助了我。我认为这将是一个相对简单的解决方案——我只是自己想不通。
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    相关资源
    最近更新 更多