我有一个实现时间范围的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>
我的问题是,在运行QuerySet时,有没有办法为[now]提供一些在服务器端评估的东西?我知道你可以将callables传递给QuerySet过滤器,但看起来这个功能不适用于FilterSpecs。我讨厌将日期时间字符串填充到查询字符串中,因为我知道我的管理员会将过滤后的链接加入书签并且会混淆。