【发布时间】:2021-10-28 15:25:56
【问题描述】:
我在 Django 中有一个代表一周的模型。我想让某人输入任何日期并让模型自动保存一周的开始。这很简单,只需覆盖保存即可。
class Week(models.Model):
start_date = models.DateField()
def save(self):
self.start_date = self.start_date - datetime.timedelta(days=date.weekday())
但我也希望有人能够查询任何一天并获得星期。例如,我希望有人这样做:
this_week = Week.objects.filter(start_date=date.today())
今天是星期三,并获取设置日期为一周开始的星期对象。它需要适用于任何日期,而不仅仅是今天。
我知道我们可以在管理器中覆盖 get_queryset,但是有没有办法编辑实际搜索的内容?我能找到的每个管理器示例都以静态方式更改了查询集。还是我最好的办法是尝试继承 DateField?
(注意上面的代码是输入的、简化的,可能包含错误,但在我的实际代码中是有效的)
【问题讨论】:
标签: python django django-queryset