在基于Django框架的Web编程中遇到了很多问题,但没有进行及时的记录及积累,导致再遇到相同问题时模棱两可,无法解决。现开此篇专记此类问题,在此感谢师傅的耐心指导。
一.在Django自带的admin中添加导入导出功能
三方库:django_import_export
GitHub地址:https://github.com/django-import-export/django-import-export
PyPI:https://pypi.org/project/django-import-export/
简介:import_export的使用方法与django自带的ModelAdmin、Form的使用很相似,同样限制于某一个model,但又提供其他的方法来实现定制,真正的灵活多变。该库基于某一个model构建ModelResources,包括制定需导入导出的字段,字段别名、字段值转换等一系列规则。体验下来就是方便实用!!!
基本使用步骤
最喜欢干的事情了(手动微笑)。记性不好,总犯迷糊,把基本步骤记下来方便下次脑子不好使的时候查阅。
★新建resouces.py文件用于编写相关代码,此处不强求,可直接写在admin.py文件里。
★新建NameModelResource类,继承于resources.ModelResource类。
★下面就是按照需求定制ModelResource,包括model绑定,需处理字段,字段别名,字段值转换,导出顺序、导出表头、新增字段等,详细见官方文档:https://django-import-export.readthedocs.io/en/stable/getting_started.html
★最后就是更改原admin的继承类,并在类中申明resource_class对应的NameModelResource。
导入导出表头为中文问题
一般在数据库中存储的字段名都是英文或缩写形式,直接导出后阅读性差,那么是否可以将其转换为对应的中文名称呢?回答是可以的。
方法: 使用import_export.fields.Field重新申明需导出的字段,并规定中文名(column_name参数)。
小结
一定要多学多看更要多用。知识一旦被应用,不仅能加深理解还能帮助记忆,下次遇到的时候就不再是感觉学过,而是会回想起当时的使用场景,说出自己的解决方法以及理解。
未完待续(将会持续更新)…
★
★★ 鹿子
★