Администратор Django: фильтрация по «сейчас» в виде списка - PullRequest
2 голосов
/ 27 июля 2011

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

1 Ответ

2 голосов
/ 28 июля 2011

Вы захотите использовать новую функцию list_filter , потому что там меньше взломов и тому подобное.

Если вы застряли с Django 1.2, я не могу вам помочь.

...