2017-03-28 8 views
1

Admin sortable(モデルの順番を変更する場合)とDjango import export(私のモデルに直接csvをインポートする場合)の2つのdjangoパッケージを使用しています。管理サイトに2つ以上のパッケージを使用しているDjango

問題は、2つのパッケージをモデルの管理者に追加した場合です。

class CategoryAdmin(SortableAdmin, ImportExportModelAdmin): 

これらは互いに優先します。

enter image description here

enter image description here

ボタンのいずれかの管理ソート可能かDjangoの輸出入のためにのみ表示されます。とにかく私はそれらを一緒に統合することができますか?代わりに、別のパッケージがありますので、同じ機能を実現することができます(モデルの順序を変更し、モデルに直接CSVをインポートしてください)。

+0

アドミニストレーターは、インポートエクスポートまたはリバージョンでソート可能な同じ問題を抱えています。これまでのところ、私が知る限り治癒はありません。 –

答えて

1

overriding the templateでこれを解決できました。ページ。 Admin SortableとDjango Import Exportはadmin change_list.htmlテンプレートを異なる方法でオーバーライドします。その理由は一緒にうまくプレイできません。

私は(site_packages/adminsortable/templates/adminsortable/change_list_with_sort_link.htmlで発見)私のベースとしてadminsortableテンプレートを使用し、このマージされたテンプレートを取得する(site_packages/import_export/templates/admin/import_export/change_list_import_export.htmlで発見)Djangoのインポートエクスポートテンプレートからいくつかの作品を追加しました:

{% extends change_list_template_extends %} 
{% load i18n %} 

{% block object-tools-items %} 
    {% for sorting_filter in sorting_filters %} 
    <li> 
     <a href="./sort/?sort_filter={{ forloop.counter0 }}">{% trans 'Change Order of' %} {{ sorting_filter }}</a> 
    </li> 
    {% empty %} 
    <li> 
     <a href="./sort/">{% trans 'Change Order' %}</a> 
    </li> 
    {% endfor %} 
    {% include "admin/import_export/change_list_import_item.html" %} 
    {% include "admin/import_export/change_list_export_item.html" %} 
    {{ block.super }} 
{% endblock %} 

ライン:

{% include "admin/import_export/change_list_import_item.html" %} 
{% include "admin/import_export/change_list_export_item.html" %} 

テンプレートにインポートエクスポートボタンを追加します。

次に、このテンプレートを使用するようにdjangoに指示する必要があります。 SortableAdminBaseクラスにはsortable_change_list_with_sort_link_templateというフィールドがあり、これを上書きして新しいカスタムテンプレートを使用することができます。 Django Import Export Admin Sortable Buttons Screenshot:カスタムテンプレートをすべてがうまく機能すれば、あなたの管理ページの最上部に表示されるすべての3つのボタンを取得する必要がありますadmin/category/change_list_import_export_sortable.html

に置くと仮定すると、

class CategoryAdmin(ImportExportMixin, SortableAdmin): 
    sortable_change_list_with_sort_link_template = 'admin/category/change_list_import_export_sortable.html' 

:だからあなたの管理者クラスは次のようになります

関連する問題