2017-03-28 5 views
1

Admin sortable (모델 순서 변경 용) 및 Django import export (내 모델에 직접 CSV 가져 오기 용) 두 장고 패키지를 사용하고 있습니다.관리 사이트에 두 개 이상의 패키지를 사용하는 Django

내 모델 관리자에게 2 개의 패키지를 추가하면 문제가 발생합니다.

class CategoryAdmin(SortableAdmin, ImportExportModelAdmin): 

서로를 오버라이드합니다.

enter image description here

enter image description here

버튼 중 하나를 단지 관리자가 정렬 또는 장고 수입 수출 보여줍니다. 어쨌든 둘 다 통합 할 수 있습니까? 또는, 같은 기능을 수행 할 수 있도록 다른 패키지가 있습니다 (모델 순서를 변경하고 모델에 직접 CSV 가져 오기).

+0

가져 오기 내보내기 또는 되돌리기와 함께 관리자 sortable을 사용할 때도 동일한 문제가 있습니다. 지금까지 내가 아는 한 치료법이 없습니다. –

답변

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에서 발견) 장고 가져 오기 내보내기 템플릿에서 일부 조각을 추가 :

{% 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이라는 필드가 있습니다.이 필드는 새 사용자 지정 템플릿을 사용하도록 재정의 할 수 있습니다. 당신이 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' 

가정하면 모든 것이 잘 작동하면 당신은 당신의 관리자 페이지 상단에 나오는 모든 3 개 버튼을지고해야한다 : 같은 당신의 관리자 클래스는 모양 Django Import Export Admin Sortable Buttons Screenshot