Django admin:在列表视图中按“now”过滤

时间:2011-07-27 18:53:22

标签: django django-admin django-1.2

我有一个实现时间范围的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。我讨厌将日期时间字符串填充到查询字符串中,因为我知道我的管理员会将过滤后的链接加入书签并且会混淆。

1 个答案:

答案 0 :(得分:2)

你会想要使用新的list_filter feature,因为黑客攻击等等。

如果你坚持使用Django 1.2,我无法帮助你。