我有一个实现时间范围的 Django 模型,如下所示:
class Period(models.Model):
start_time = models.DateTimeField(_(u'start time'))
end_time = models.DateTimeField(_(u'end time'))
我也有一个简单的 ModelAdmin。我想在管理列表视图中提供一个过滤器,将这些时期分为“未来”、“进行中”和“过去”。我可以分别为 start_time 和 end_time 启用日期过滤器,并修改 change_list.html 模板以提供正确的查询字符串,如下所示:
<li><a href="?start_time_lte=[now]&end_time_gt=[now]">In Progress</a>
我的问题是,有没有办法为 [now] 提供一些在运行 QuerySet 时在服务器端进行评估的东西?我知道您可以将可调用对象传递给 QuerySet 过滤器,但似乎该功能不适用于 FilterSpecs。我讨厌必须将日期时间字符串填充到查询字符串中,因为我知道我的管理员会为过滤后的链接添加书签并且会感到困惑。