временная фильтрация в админке для встроенных - PullRequest
0 голосов
/ 04 марта 2012

Я пытаюсь управлять консолью администратора.

У меня есть две модели: место проведения и событие: события могут происходить на объектах, а события имеют метку времени.

В своей консоли администратора я добавил события, которые будут перечислены в администраторе объектовиспользуя строчные.

Однако я хочу настроить случай, когда по по умолчанию будут перечислены только события из timestamp.now () в будущее и все события до teimstamp.now() не отображаются.

На данный момент я ограничен Django 1.3, но я считаю, что Django 1.4 имеет тип решения в SimpleListFilter.

Я где-то читал, чтоDateFieldFilterSpec можно использовать, но документации и примеров очень мало.(Можете ли вы указать мне некоторые ссылки, если они у вас есть?)

В приведенном ниже коде python нет никакой связи между импортом DateFieldFilterSpec и приведенным ниже кодом, но я понятия не имею, гдеили как они связаны.

admin.py

from django.contrib.admin.filterspecs import DateFieldFilterSpec

class eventInline(admin.TabularInline):

    list_filter = ('now')

    model = event
    extra = 1

class VenueAdmin(admin.ModelAdmin):
   inlines = [eventInline,]

Когда я использую приведенный выше код, я просто получаю все события, тамне похоже никакой фильтрации.

1 Ответ

0 голосов
/ 04 марта 2012

Как насчет изменения набора запросов для этой цели (замените eventdate именем поля, содержащего дату события):

from datetime import datetime
from django.contrib import admin

class eventInline(admin.TabularInline):
    def queryset(self, request):
        qs = super(eventInline, self).queryset(request)
        return qs.filter(eventdate__gte=datetime.now)
    model = event
    extra = 1

class VenueAdmin(admin.ModelAdmin):
   inlines = [eventInline,]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...