0

我正在尝试管理管理控制台。

我有两个模型,一个场地和一个活动:活动可以在场地发生,活动有时间戳。

在我的管理控制台中,我使用内联添加了要在场所管理中列出的事件。

但是,我想设置一个案例,默认情况下,仅列出从 timestamp.now() 到未来的事件,并且不显示 teimstamp.now() 之前的所有事件。

Django 1.3目前仅限于,但我相信Django 1.4SimpleListFilter.

我读过DateFieldFilterSpec可以使用的地方,但是文档和示例非常缺乏。(如果你有参考资料,你能指出我吗?)

在下面的python代码中,导入到下面显示的代码之间没有任何联系DateFieldFilterSpec,但我不知道它们在哪里或如何连接。

管理员.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,]

当我使用上面的代码时,我只是得到了所有的事件,似乎没有任何过滤。

4

1 回答 1

0

如何为此目的修改查询集(替换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,]
于 2012-03-04T11:53:21.793 回答