from django.contrib import admin from book.models import Book, Topic, Module class TopicListFilter(admin.SimpleListFilter): title = 'topic modules' parameter_name = 'topic_modules' def lookups(self, request, model_admin): return list((topic.slug, topic.title) for topic in Topic.objects.all()) def queryset(self, request, queryset): filter_value = self.value() topic = Topic.objects.filter(slug=filter_value).first() if topic: return Module.get_topic_modules(topic) @admin.register(Book) class BookAdmin(admin.ModelAdmin): list_display = ('title', 'slug') @admin.register(Topic) class TopicAdmin(admin.ModelAdmin): list_display = ('title', 'slug', 'teaser', 'description') @admin.register(Module) class ModuleAdmin(admin.ModelAdmin): list_display = ('title', 'slug', 'meta_title', 'teaser') list_filter = (TopicListFilter, )