我正在尝试管理管理控制台。
我有两个模特,场地和活动:活动可以在场地举行,活动有时间戳。
在我的管理控制台中,我使用内联添加了要在场地管理员中列出的事件。
但是,我想设置一个案例, 默认情况下 仅列出来自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,]
当我使用上面的代码时,我只是得到了所有的事件,似乎没有任何过滤。
答案 0 :(得分: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,]