2016-11-23 3 views
0

Ich möchte hinzufügen Schaltfläche Admin-Panel zu meinem Modell django, habe ich überschreiben Vorlage (Pfad: templetes/admin/myapp/mymodel/change_list.html)benutzerdefinierte Schaltfläche Hinzufügen Admin-Panel

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 %} 

In admin.py

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

Aber ich kann den Knopf nicht sehen.

+0

Wo möchten Sie diese Schaltfläche anzeigen? – arulmr

+0

@arulmr auf Gegenstände .... –

+0

Siehe meine Antwort. Es sollte funktionieren. Ich habe es selbst getestet. – arulmr

Antwort

4

Es funktioniert wie folgt ("Import" -Taste rechts).

enter image description here

Django = 1,11

admin/change_list.html: Fügen Sie die URL mit "admin". Andernfalls wird die URL nicht aufgelöst.

{% 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: Fügen Sie die benutzerdefinierte Vorlage URL

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

settings.py: Django> 1.8 TEMPLATE_LOADERS deprecated. Setze SCHABLONEN wie folgt.

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

Sie können die Schaltfläche neben der Schaltfläche Add oben auf der Listenseite mit dem folgenden Inhalt sehen.

{% 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

Lösung funktioniert nicht –

+0

@ git-e Das ist seltsam. Haben Sie Ihre Vorlageneinstellungen richtig definiert? – arulmr

+0

Ich denke, ja 'TEMPLATE_DIRS = ( os.path.join (BASE_DIR, 'Vorlagen'), )' und 'TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.Loader', ‚django.template.loaders .app_directories.Loader ', ' django.template.loaders.eggs.Loader ', ) ' –

Verwandte Themen