Python 如何在django模型中将月份表示为字段
特定日历月应如何表示为与整月(如2015年3月)相关的数据字段,而不是该月内的某一天。Django提供了Python 如何在django模型中将月份表示为字段,python,django,django-models,Python,Django,Django Models,特定日历月应如何表示为与整月(如2015年3月)相关的数据字段,而不是该月内的某一天。Django提供了models.DateField类,但它要求指定日期。我要找的是一个MonthField 我正在寻找处理这种情况的最具python风格和“Django”风格的方法。我已经多次遇到这种情况,我很想知道什么是“正确”的方式来处理它 我知道这个问题。没有讨论基于字符串的方法的优缺点,也没有与其他解决方案进行比较 我正在考虑的一些陈述包括: 使用日期字段并强制将日期设置为月份的1号 使用单个整数,以“
models.DateField
类,但它要求指定日期。我要找的是一个MonthField
我正在寻找处理这种情况的最具python风格和“Django”风格的方法。我已经多次遇到这种情况,我很想知道什么是“正确”的方式来处理它
我知道这个问题。没有讨论基于字符串的方法的优缺点,也没有与其他解决方案进行比较
我正在考虑的一些陈述包括:
我认为解决方案是使用自定义字段(子代码类<代码>模型。字段< /代码>),使用上面的一个表示,关联的小部件,验证等,但我也会考虑提供其他解决方案的答案。
类似的问题是与特定周相关的数据,例如员工时间表。过去我通过创建一个
WorkWeek
模型来处理这个问题,尽管我怀疑这是错误的方法,因为我将数据存储在内置python库中已有的数据库中。我建议您继续使用Django,因为这将允许您保留在基于时间的序列上执行的日历查询,并且可能会使您避免过度工程的潜在情况
显示模型数据时,使用可用功能仅显示一年中的月份。编写数据时,您只需向用户提供一个自定义表单小部件,并将日期更新到表单验证的当月1日。您是否建议创建
模型的子类。DateField
?我最终创建了一个使用models.DateField存储db的子类,因此我接受您的答案。FWIW,这里是一个,但用于存储月份和日期(无年份)