gpt4 book ai didi

python - 如何在 Django 模型上将月份表示为字段

转载 作者:太空狗 更新时间:2023-10-29 22:18:48 25 4
gpt4 key购买 nike

特定日历月应如何表示为与整个月相关的数据字段,例如。 2015 年 3 月,而不是该月的特定日期。 Django 提供了 models.DateField 类,但它需要指定日期。我正在寻找的是 MonthField

我正在寻找处理这种情况的最 pythonic 和“Django”的方法。我现在已经多次遇到这种情况,很想知道处理它的“正确”方法是什么。

我知道 this问题。没有讨论基于字符串的方法的优缺点或与其他解决方案的比较。

我正在考虑的一些陈述包括:

  1. 使用日期字段并将日期强制为每月的 1 号。
  2. 使用单个整数,以“1900 年 1 月以来的月份”方式进行解释。
  3. 使用两个单独的整数字段,年和月。
  4. 使用字符字段,例如“2015-03”

我认为解决方案是使用自定义字段(models.Field 的子类,根据 https://docs.djangoproject.com/en/dev/howto/custom-model-fields/ ),使用上面的一种表示形式,以及相关的小部件、验证等,但我会还要考虑提供替代解决方案的答案。

类似的问题是与特定周相关的数据,例如。员工时间表。我过去通过创建 WorkWeek 模型来处理这个问题,但我怀疑这是错误的方法,因为我将数据存储在内置 python 库中已经可用的数据库中。

最佳答案

我建议您继续使用 Django 的 models.DateField ,因为这将允许您保留对基于时间的系列执行的日历查询,并且可能使您免于过度工程的潜在情况。

显示模型数据时,使用可用的 datetime函数只显示一年中的月份。在创作数据时,您可以简单地向用户展示一个自定义表单小部件,并将日期更新为表单验证后的当月 1 日。

关于python - 如何在 Django 模型上将月份表示为字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30017229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com