Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
overidedjango管理列表过滤器模板_Django_Django Admin_Django Admin Filters_Cookiecutter Django - Fatal编程技术网

overidedjango管理列表过滤器模板

overidedjango管理列表过滤器模板,django,django-admin,django-admin-filters,cookiecutter-django,Django,Django Admin,Django Admin Filters,Cookiecutter Django,我想超越默认的django管理过滤器模板,使用我自己的模板,基于此: 通过继承django.contrib.admin.SimpleListFilter class PublisherStateFilter(admin.SimpleListFilter): title = _('Status') parameter_name = 'status' template = 'admin/blogitty/filter.html' [...] 这很好用 但是,我

我想超越默认的django管理过滤器模板,使用我自己的模板,基于此:

通过继承
django.contrib.admin.SimpleListFilter

class PublisherStateFilter(admin.SimpleListFilter):
    title = _('Status')
    parameter_name = 'status'
    template = 'admin/blogitty/filter.html'

    [...]
这很好用

但是,我想对所有管理过滤器使用相同的模板。是否有一种方法可以覆盖给定应用程序的所有筛选模板,而不必为每个
外键
多个
关系定义自定义的
列表筛选

我的项目是
blogitty
。我尝试了模板目录的两个选项:

blogitty/templates/admin/filter.html
以及:

运气不好:-(

查看源代码:

据我所知。Django ModelAdmin检查多个路径以呈现给定模型的changeform或changelist。但是对于
列表过滤器
,没有额外的检查来加载自定义模板

更新-模板目录设置:

BASE_DIR = dirname(dirname(__file__))    

TEMPLATE_DIRS = (
    join(BASE_DIR, 'templates'),
)  
项目布局基于Daniel Greenfeld的

这可能会有所帮助

class ClassFilter1(admin.ModelAdmin):
    title = 'Filter Class'
    parameter_name = 'filter-class'

    def lookups(self, request, model_admin):
       # Your Lookups

    def queryset(self, request, queryset):
       # Your Lookups

class FilterClass(admin.ModelAdmin):
    list_filter = (ClassFilter1, ClassFilter2)
    change_list_template = 'polls/change_list_template.html'
并覆盖
更改列表\u template.html
并将.html放置在
轮询/模板/轮询

    return TemplateResponse(request, self.change_list_template or [
        'admin/%s/%s/change_list.html' % (app_label, opts.model_name),
        'admin/%s/change_list.html' % app_label,
        'admin/change_list.html'
    ], context)
class ListFilter(object):
    title = None  
    template = 'admin/filter.html'
BASE_DIR = dirname(dirname(__file__))    

TEMPLATE_DIRS = (
    join(BASE_DIR, 'templates'),
)  
class ClassFilter1(admin.ModelAdmin):
    title = 'Filter Class'
    parameter_name = 'filter-class'

    def lookups(self, request, model_admin):
       # Your Lookups

    def queryset(self, request, queryset):
       # Your Lookups

class FilterClass(admin.ModelAdmin):
    list_filter = (ClassFilter1, ClassFilter2)
    change_list_template = 'polls/change_list_template.html'