没有年份的Django DateField

11 投票
3 回答
5416 浏览
提问于 2025-04-16 00:07

有没有办法创建一个没有年份的日期字段?还是说我必须使用字符字段?我是在后台管理界面编辑这些模型的。

3 个回答

1

这个对我有效:

data_sorted = sorted(My_Model.objects.all(), key=lambda e: e.myDataField.strftime("%m-%d"))
1

DateField 是一个完整的日期。如果你只关心月份和日期,那么在查询的时候可以使用 __month__day

2

你需要决定是想在模型(和数据库)中使用普通的日期对象,然后自己调整表单的显示方式,还是希望数据存储中有特定格式的数据。

如果你只想在表单中显示日期的“天”和“月”,那么你需要写一个自定义的控件,并把它连接到ModelAdmin类中的表单里。Django的文档里有很好的介绍,教你如何编写自定义字段自定义控件

不管是哪种情况,继承一个已有的模型或控件,然后修改你想要的行为会简单很多。

撰写回答