У меня есть модель 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? Я знаю, что вы можете передавать вызовы в фильтр QuerySet, но кажется, что эта функциональность недоступна в FilterSpecs. Я ненавижу вставлять строку даты и времени в строку запроса, потому что я знаю, что мои администраторы добавят в закладки отфильтрованные ссылки и запутаются.