【问题标题】:Django - Days of the week (int) isn't rendering a stringDjango - 星期几(int)没有呈现字符串
【发布时间】:2021-04-30 05:51:50
【问题描述】:

我的应用中有一个模型将一周中的某一天存储为:


DAYS = (
        (0, 'Monday'),
        (1, 'Tuesday'),
        (2, 'Wednesday'),
        (3, 'Thursday'),
        (4, 'Friday')
    )

day = models.IntegerField(validators=[MaxValueValidator(4), MinValueValidator(0)], blank=True, choices = DAYS)

根据Django Documentation,

每个元组中的第一个元素是要在模型上设置的实际值,第二个元素是人类可读的名称

但是,对我来说似乎并非如此。例如,在同一个应用程序的这个模板中,当我有类似的东西时:

{{q.day}}

这给了我:1 而不是 Tuesday。 我尝试了 SO 的一些建议,包括creating your own model,甚至考虑通过 Jinja2 传递自定义函数,尽管我觉得这不必要地复杂。解决此问题的最佳方法是什么。我是不是不太清楚这个的功能?

注意:我想将日期存储为 int,因为我的应用正在运行一些复杂的算法,我只想将其转换为显示目的。

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      当您在模型字段中有选择时,您必须使用 {{object.get_attribut_display}} 而不是 {{object.attribut}}。 不要忘记仔细阅读文档。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-04
        • 2022-01-21
        • 1970-01-01
        • 2011-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多