2016-11-23 120 views
0

我要添加按鈕來管理面板我的模型,我已經覆蓋模板(路徑:templetes/admin/myapp/mymodel/change_list.html添加自定義按鈕,Django管理面板

change_list.html

{% extends "admin/change_list.html" %} 
{% load i18n admin_static %} 

{% block result_list %} 
<div class="object-tools"> 
    <a href="{% url 'myurl' %}" class="btn btn-high btn-success">Import</a> 
</div> 
{{ block.super }} 
{% endblock %} 

在admin.py

class ImportAdmin(admin.ModelAdmin): 
    change_list_template = 'admin/myapp/mymodel/change_list.html' 

但我看不到按鈕。

+0

你想在哪顯示此按鈕? – arulmr

+0

@arulmr上的項目.... –

+0

看到我的答案。它應該工作。我自己測試了它。 – arulmr

回答

4

它的工作原理如下(「導入」按鈕右側)。

​​

的Django = 1.11

管理/ change_list.html:用添加URL 「管理員」。否則,它不會解析URL。

{% extends "admin/change_list.html" %} 
{% load i18n admin_static %} 

{% block object-tools-items %} 
{{ block.super }} 
<li> 
    <a href="{% url 'admin:myurl' %}" class="btn btn-high btn-success">Import</a> 
</li> 
{% endblock %} 

admin.py:添加自定義模板URL

class ImportAdmin(admin.ModelAdmin): 
    change_list_template = 'admin/myapp/mymodel/change_list.html' 

settings.py:Django的> 1.8 TEMPLATE_LOADERS deprecated。如下設置模板。

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'templates')], 
     'APP_DIRS': False, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
      'loaders': [ 
       'admin_tools.template_loaders.Loader', 
       ('django.template.loaders.cached.Loader', [ 
        'django.template.loaders.filesystem.Loader', 
        'django.template.loaders.app_directories.Loader', 
       ]), 
      ], 

     }, 
    }, 
] 
1

您將能夠在列表頁面頂部看到按鈕Add旁邊的按鈕,其中包含以下內容。

{% extends "admin/change_list.html" %} 
{% load i18n admin_static %} 

{% block object-tools-items %} 
    {{ block.super }} 
    <li> 
     <a href="{% url 'myurl' %}" class="btn btn-high btn-success">Import</a> 
    </li> 
{% endblock %} 
+0

解決方案不起作用 –

+0

@ git-e這很奇怪。您是否正確定義了您的模板設置? – arulmr

+0

我想是'TEMPLATE_DIRS =( os.path.join(BASE_DIR, '模板'), )'和'TEMPLATE_LOADERS =( 'django.template.loaders.filesystem.Loader', 「django.template.loaders .app_directories.Loader', 'django.template.loaders.eggs.Loader', )' –

相關問題