django-import-export#
django-import-export = "^2.4.0"
settings.py#
1
2
3
4
5
| INSTALLED_APPS += [
...
"import_export",
...
]
|
resources.py#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| from import_export import resources
from .. import models
class DepartmentResource(resources.ModelResource):
class Meta:
model = models.Department
import_id_fields = ["code", "company_code"] # 複合キー
exclude = ["company", "jobposts", "origin", "status"] # 除外
def get_instance(self, instance_loader, row):
instance = super().get_instance(instance_loader, row)
exclude = []
if instance:
exclude += ["is_m03", "is_tmb"] # 更新除外
list(map(lambda i: row.pop(i, None), exclude))
return instance
|
admin.py#
1
2
3
4
5
6
7
8
9
10
11
12
13
| from import_export.admin import ImportExportActionModelAdmin
from . import inlines, resources
class BaseModelAdmin(ImportExportActionModelAdmin):
exclude = ["created_at"]
readonly_fields = ["updated_at"]
@admin.register(models.Department)
class DepartmentAdmin(BaseModelAdmin):
...
resource_class = resources.DepartmentResource
|