更新日志

警告

如果从v3升级,v4引入了破坏性变更。请参考 发布说明

4.3.9 (2025-07-21)

4.3.8 (2025-06-23)

  • ui: 修复导出字段选择页面上错误显示两次的问题 (2066)

  • ui: 在导出页面添加“全选”字段切换 (2068)

  • 添加希伯来语翻译 (2071)

  • ui:修复导入时非字段错误的显示(2075

4.3.7 (2025-02-25)

  • 更新法语翻译 (2042)

4.3.6 (2025-02-21)

  • 添加标志以忽略XLSX导入中的空行 (2028)

  • 添加对Django 5.2的支持 (2037)

  • 修复中文翻译 (2040)

4.3.5 (2025-02-01)

  • 澄清关于创建不存在关系的文档 (2029)

  • 更新土耳其语翻译(2031

4.3.4 (2025-01-15)

  • 处理在导出时使用``values()``调用的QuerySets(2011

4.3.3 (2024-12-02)

  • 更新所有翻译 (2014)

4.3.2 (2024-12-01)

  • 更新波斯语翻译 (2008)

  • 更新了德语翻译(2012

4.3.1 (2024-11-19)

  • 修复openpyxl的导入问题(2005

4.3.0 (2024-11-19)

  • 添加导入和导出管理命令 (1992)

  • 处理xlsx导出中的``IllegalCharacterError`` (2001)

  • 为InvalidRow添加``__repr__``方法以改进调试功能(2003

4.2.1 (2024-11-11)

  • 移除了依赖文件,转而使用 pyproject.toml (1982)

  • 文档更新 (1989)

  • 修复将时区感知的datetime导出为二进制格式时的崩溃问题 (1995)

4.2.0 (2024-10-23)

此版本包含重大变更。请参阅 发布说明

  • 升级了tablib版本(1627

  • 文档覆盖格式 (1868)

  • ModelAdmin导出mixin中一致的queryset创建 (1890)

  • 已弃用 get_valid_export_item_pks(),改用 get_queryset() (1890)

  • 改进 ExportViewFormMixin 的弃用警告,以在类定义时报告 (1900)

  • 修复具有自定义声明名称的字段的导出 (1903)

  • 隐藏“Resource”表单当它只有一个选项时(1908

  • 更新日期、时间和datetime小部件的渲染方法以处理派生实例(1918

  • 添加对Django 5.1的支持 (1926)

  • 在数字小部件(FloatWidget()IntegerWidget()DecimalWidget())中接受使用当前语言数字分隔符的数字(1927

  • 为从字段白名单中排除的已声明字段添加了警告 (1930)

  • 修复v3回归问题:处理导出到电子表格时的原生类型 (1939)

  • 修复未分配导出权限时变更界面显示的导出按钮 (1942)

  • 修复 Django 5.1 中跳过行时导致的崩溃 (1944)

  • 允许在dehydrate方法中使用可调用对象(1950

  • 修复当Resource字段声明不正确时导致的崩溃 (1963)

  • 更新依赖项 (1979)

4.1.1 (2024-07-08)

  • 恢复已弃用方法 get_fields() 的返回值 (1897)

4.1.0 (2024-06-25)

  • 改进Error类(1882

  • 修复响应内容断言 (1883)

  • Admin UI:在导出表单中将复选框显示在标签前(1884

  • 已弃用未使用的方法:get_fields() (1885)

4.0.10 (2024-06-25)

  • 移除自定义存储的django版本检查 (1889)

4.0.9 (2024-06-18)

  • docs: 澄清 for_delete() 文档 (1877)

  • 修复默认的 Field 返回空字符串而不是 'None' 的问题(1872

  • 恢复为 attribute 设置默认值 (1875)

4.0.8 (2024-06-13)

  • 文档:明确小部件配置(1865

  • 启用跳过导出确认页面 (1867)

4.0.7 (2024-05-30)

  • 修复文档以展示导出时读取表单数据的正确方法 (1859)

  • Admin UI:在导出时同时显示字段名和列名(1857

  • 修复导出声明字段与自定义列名 (1861)

  • 修复声明的字段未设置正确的Widget类 (1861)

  • 文档:澄清 v4 中对 CharWidget 的更改 (1862)

  • 重构 Resource 以移除导出中的代码重复 (1863)

4.0.6 (2024-05-27)

  • 为导出字段顺序添加了额外的测试 (1848)

  • 修复导入时关系具有自定义主键导致的崩溃 (1853)

  • 修复当实例具有自定义主键时从操作导出时的崩溃问题 (1854)

4.0.5 (2024-05-23)

  • 修复因格式错误的README.rst导致的无效构建(1851

4.0.4 (2024-05-23)

  • 重构了 DateWidgetDateTimeWidget 以消除代码重复 (1839)

  • 发布说明文档已更新 (1840)

  • 为示例应用添加了缺失的迁移 (1843)

  • 修复管理界面中字段导入顺序的显示问题 (1849)

4.0.3 (2024-05-16)

  • 支持带有CSS和JS媒体的widgets在ImportForm中(1807

  • 文档更新 (1833)

  • 在使用``import_id_fields``导入时澄清了文档(1836

  • 重新添加 resource_class 弃用警告 (1837)

  • 修正了'import'一词的阿拉伯语翻译 (1838)

4.0.2 (2024-05-13)

  • 修复带有自定义列名的导出 (1821)

  • 修复允许在 fields 列表中声明 column_name (1822)

  • 修复 key_is_iduse_natural_foreign_keys 之间的冲突(1824

  • 移除不可达代码 (1825)

  • 修复自定义 ForeignKey 子类的小部件分配问题 (1826)

  • performance: 选择有效pks用于导出限制于action exports (1827)

  • 修复导出时自定义列名导致的崩溃 (1828)

  • 移除过时的日期时间格式化逻辑 (1830)

4.0.1 (2024-05-08)

  • 修复导出时模型没有``id``导致的崩溃(1802

  • 修复当使用django Field子类时Widget崩溃的问题(1805

  • 修复回归:当默认的``import_id_field``不存在时允许导入(1813

4.0.0 (2024-04-27)

弃用

  • 移除了 v3 弃用项 (1629)

  • 弃用 ExportViewFormMixin (1666)

增强功能

  • 重构排序逻辑 (1626)

    • 重构 'diff' 逻辑以避免调用 dehydrate 方法

    • 重构 fieldsimport_orderexport_order 的声明以解决排序问题

  • 重构以导出HTML / 公式转义更新 (1638)

  • 移除了未使用的变量 Result.new_record (1640)

  • 重构 resources.py 以标准化方法参数 (1641)

  • 添加了对缺失 import_id_fields 的特定检查 (1645)

  • 启用可选的 tablib 依赖项 (1647)

  • 添加了 get_lookup_kwargs() 以便更轻松地覆盖对象查找 (1651)

  • render() 的标准化接口 (1657)

  • 修复在ModelResource中声明现有模型字段导致导出顺序改变的问题 (1663)

  • 新增 do_instance_save() 辅助方法 (1668)

  • 允许将Resource模型定义为字符串(1669

  • 支持多资源导出 (1671)

  • 支持从模型变更表单导出 (1687)

  • 如果只定义了一种格式,导入表单默认为只读字段(1690

  • 更新了Admin UI以跟踪已删除和跳过的导入(1691

  • 新增可定制的``MediaStorage`` (1708)

  • 添加了Admin UI导入错误消息的自定义功能 (1727)

  • 改进错误消息的输出 (1729)

  • 新增功能:管理员导出视图的可选字段 (1734)

  • 添加了对声明的 import_id_fields 不在数据集中的特定检查 (1735)

  • add_instance_info() 中添加了 try / catch 以处理不可序列化的实例 (1767)

  • 如果源文件包含无效头则添加表单错误(1780

  • 移除不必要的format方法重写(1785

  • 支持基于请求属性的Resource类动态选择(1787

修复

  • 动态小部件参数修复了 CharField 在 xlsx 中的 'NOT NULL constraint' 错误 (1485)

  • 修复与 adminsortable2 的合作 (1633)

  • 移除了未使用的方法 utils.original()

  • 修复已弃用的 log_action 方法 (1673)

  • 修复多重继承未设置选项 (1696)

  • 修复问题:在``fields``中未定义的已声明Resource字段仍被导入(1702

  • 修复了Admin导入过程中对:attr:~import_export.exceptions.FieldError`的处理(`1755

  • 修复了Admin导出期间对django FieldError 的处理 (1756)

  • 添加对 render() 中类型的检查 (1757)

  • 修复:YAML 导出不适用于 SafeString (1762)

  • 修复: render() 在值为 None 时崩溃 (1771)

  • 修复未将表单传递给 get_import_resource_kwargs() 的问题 (1789)

  • 修复:PositiveBigIntegerField 缺少默认小部件(1795

开发

  • 重构构建过程 (1630)

  • 重构了 test_admin_integration():拆分为更小的测试模块 (1662)

  • 重构了 test_resources():拆分为更小的测试模块 (1672)

  • 在``runtests.sh``中更新了``docker-compose``命令以使用最新版本语法(1686

  • 重构 resources 为独立的 declarativeoptions 模块 (1695)

  • 重构测试以移除测试间的依赖关系(1703

  • 处理python3.12 datetime弃用(1705

  • test_resources.py 重构为更小的模块 (1733)

  • 更新测试覆盖率以在``collect_failed_rows``为``True``时包含错误行(1753

  • 移除了对django 3.2的支持(1790

  • 为模型字段生成的小部件添加了测试 1795)

文档

  • 澄清了 skip_diff 的文档 (1655)

  • 改进与导入验证相关的文档 (1665)

  • 添加了关于导出大型数据集的FAQ条目(1706

  • 将管理集成部分从advanced_usage.rst迁移至新文件(1713

  • 更新了Admin集成文档,以阐明如何保存自定义表单值(1746

性能

  • 修复外键ID导致的导出缓慢问题 (1717)

国际化 (i18n)

  • 为release-4更新的翻译(1775

3.3.9 (2024-04-28)

  • 更新俄语翻译 (1797)

3.3.8 (2024-04-08)

  • 添加额外的django模板块以扩展导入页面 (1776)

3.3.7 (2024-02-03)

3.3.6 (2024-01-10)

  • 修复在使用'light'配色方案时的高亮问题 (1728)

3.3.5 (2023-12-19)

  • 移除不必要的ChangeList查询以通过Admin UI加速导出(1715

  • 尊重颜色方案覆盖 (1720)

  • 更新FAQ以涵盖跳过包含验证错误的行 (1721)

3.3.4 (2023-12-09)

  • 添加了对django5的支持 (1634)

  • 在Admin UI中显示导出的字段列表 (1685)

  • 添加了 CONTRIBUTING.md

  • 添加了对 python 3.12 的支持 (1698)

  • 更新芬兰语翻译(1701

3.3.3 (2023-11-11)

3.3.2 (2023-11-09)

  • 更新了西班牙语翻译 (1639)

  • 添加了关于导入后检索实例信息的文档和测试(1643

  • render() 返回 None 作为空字符串,如果 coerce_to_string 为 True (1650)

  • 更新文档以描述如何在Admin UI中选择导出 (1670)

  • 添加了对django5弃用警告的捕获(1676

  • 更新并编译了消息文件(1678

3.3.1 (2023-09-14)

  • 添加了 .readthedocs.yaml (1625)

3.3.0 (2023-09-14)

弃用

  • 移除 'escape output' 弃用 (1618)

    • 移除已弃用的 IMPORT_EXPORT_ESCAPE_OUTPUT_ON_EXPORT

    • 弃用 IMPORT_EXPORT_ESCAPE_HTML_ON_EXPORT。请参阅 installation 文档。

增强功能

  • 重构和修复以支持过滤导出 (1579)

  • instanceoriginal 对象存储在 RowResult 中 (1584)

  • 在import.html中添加可自定义的块 (1598)

  • 包含 'allowed formats' 设置 (1606)

  • 添加kwargs以启用CharWidget将值作为字符串返回 (1623)

国际化

  • 添加芬兰语翻译 (1588)

  • 更新了俄语翻译 (1604)

  • 修复了格式错误的翻译字符串 (1622)

  • 移除 'escape output' 弃用 (1618)

修复

  • 写入MediaStorage时不要解码字节(1615

  • 修复未移除的缓存条目 (1621)

开发

  • 添加了对 Django 4.2 的支持 (1570)

  • 添加自动格式化和linting (1571)

  • 移除了重复的管理员集成测试 (1616)

  • 移除了对 python3.7 和 django4.0 的支持(已过 EOL)(1618

文档

  • 更新了与第三方库互操作的文档 (1614)

3.2.0 (2023-04-12)

  • 导出到XLSX时转义公式 (1568)

    • 这包括弃用 IMPORT_EXPORT_ESCAPE_OUTPUT_ON_EXPORT

      参考 installation 获取替代方案。

    • import_export.formats.TablibFormat.export(): escape_output 标志现已弃用,推荐使用 escape_htmlescape_formulae

  • 重构方法,以便正确声明 args (1566)

    • 这包括如果您已覆盖 export()ImportExportFormBase 需要注意的弃用项。

      • export():如果传递 queryset 作为第一个参数,请确保将其作为命名参数传递。

      • ImportExportFormBase:如果将``resources``作为第一个参数传递给``__init__``,请确保以命名参数的形式传递。

  • 更新了 setup.py (1564)

  • 添加了 SECURITY.md (1563)

  • 更新FAQ以包含针对`RelatedObjectDoesNotExist`异常的解决方法(1562

  • 防止比较新对象的m2m字段时出错 (1560)

  • 为从admin表单传递数据到Resource添加文档 (1555)

  • 新增了对西班牙语和西班牙语(阿根廷)的翻译(1552

  • 将kwargs传递给import_set函数 (1448)

3.1.0 (2023-02-21)

  • Float 和 Decimal 小部件在导出时使用 LANGUAGE_CODE (1501)

  • 添加可选的 dehydrate 方法参数 (1536)

    • exceptions 模块已被取消弃用

  • 更新了德文翻译 (1537)

  • 在Admin Site中添加单步导入选项 (1540)

  • 添加对m2m add的支持 (1545)

  • 批量操作时收集错误 (1541)

    • 此更改导致批量导入错误被记录在DEBUG级别而非EXCEPTION。

  • 提升批量导入性能 (1539)

    • raise_errors 已被弃用作为 import_row() 中的 kwarg

  • 在导入过程中减少内存占用 (1542)

  • 文档更新 (1533)

  • 为``DateWidget``和``TimeWidget``添加详细的格式参数文档字符串(1532

  • tox更新(1534

  • 修复HTML导出中的XSS漏洞 (1546)

3.0.2 (2022-12-13)

  • 支持 Python 3.11 (1508)

  • 在``ExportMixin``中使用``get_list_select_related``(1511

  • bugfix: 处理启动时因``change_list_template``为属性导致的崩溃 (1523)

  • bugfix: 在跳过行时包含行结果中的实例信息 (1526)

  • bugfix: 为 Resource 构造函数添加 **kwargs 参数 (1527)

3.0.1 (2022-10-18)

  • 更新了 django-import-export-ci.yml 以修复 node.js 弃用问题

  • bugfix: DateTimeWidget.clean() 处理时区感知的 datetime (1499)

  • 为v3.0.0版本更新的翻译(1500

3.0.0 (2022-10-18)

重大变更

此版本对公共API进行了一些小改动。如果您重写了``resources``或``widgets``模块中的任何方法,可能需要更新您的实现以适应这些更改。

  • 检查 ManyToManyFieldskip_row() 中的值 (1271)
    • 这修复了一个问题,即ManyToMany字段在``skip_row()``中没有被正确检查。这意味着``skip_row()``现在将``row``作为必需参数。如果您在自己的实现中重写了``skip_row()``,则需要添加``row``作为参数。

  • Bug修复:当设置 skip_unchanged 时验证错误被忽略(1378
    • 如果你重写了 skip_row(),你可以选择在存在验证错误时是否跳过行。默认行为是在导入过程中出现验证错误时不跳过行。

  • 使用'create'标志而不是instance.pk (1362)
    • import_export.resources.save_instance() 现在需要一个额外的必填参数:is_create。如果您在自己的代码中重写了 save_instance(),则需要添加这个新参数。

  • widgets:未使用的 *args 参数已从方法定义中移除。(1413
    • 如果你已经覆盖了``clean()``,那么你应该更新你的方法定义以反映这一变化。

    • widgets.ForeignKeyWidget / widgets.ManyToManyWidget:未使用的 *args 参数已从 __init__() 中移除。如果您已重写 ForeignKeyWidgetManyToManyWidget,可能需要更新您的实现以反映此更改。

  • 管理界面:修改了导入错误的处理方式 (1306)
    • 导入过程中引发的异常现在以表单错误的形式呈现,而不是被包裹在响应的<H1>标签中。如果您有任何直接使用写入响应的错误的自定义逻辑,则可能需要更改。

  • ImportForm:提高与之前签名的兼容性(1434
    • 之前的 ImportForm 实现是基于 Django 的 forms.Form,如果你有任何自定义的 ImportForm,现在需要继承自 import_export.forms.ImportExportFormBase

  • 允许在admin视图中使用mixins自定义``change_list_template``(1483
    • 如果你正在使用此库中的admin mixins与覆盖``change_list_template``的代码(通常是来自其他库的admin mixins,如django-admin-sortable2或reversion)结合使用,admin更改列表视图中的对象工具现在可能会以不同方式呈现。

    • 如果你创建了一个自定义模板,该模板扩展了任何 import_export 模板,那么现在可能会导致递归错误(参见 `1415 <https://github.com/django-import-export/django-import-export/pull/1415 >`_

  • import.html:添加了导入模板的块(1488
    • 如果您对导入模板进行了自定义,那么在添加块声明后,您可能需要重构这些内容。

弃用

此版本添加了一些将在未来版本中移除的弃用项。

  • 在ModelAdmin中添加对多资源的支持。(1223)

    • 接受单一资源的``*Mixin.resource_class``已被弃用,新增了接受可下标类型(list、tuple等)的``*Mixin.resource_classes``。

    • 同样适用于所有 get_resource_classget_import_resource_classget_export_resource_class 方法。

  • 已弃用的 exceptions.py (1372)

  • 重构了 ImportMixin / ExportMixin 中与表单相关的方法 (1147)

    • 以下已弃用:

      • get_import_form()

      • get_confirm_import_form()

      • get_form_kwargs()

      • get_export_form()

增强功能

  • 为导出操作正确设置了默认格式选择 (1389)

  • 添加了在每个行的``RowResult``中存储原始行值的选项(1393

  • 为``ForeignKeyWidget``添加自然键支持(1371

  • 优化后的 CharWidget 默认实例化 (1414)

  • 允许在admin视图中使用mixins自定义``change_list_template``(1483

  • 添加了导入模板的块 (1488)

  • 提升与之前 ImportForm 签名的兼容性 (1434)

  • 重构了 ImportMixin / ExportMixin 中与表单相关的方法 (1147)

  • 在模板中包含自定义表单媒体 (1038)

  • 移除本地运行tox时生成的不必要文件 (1426)

修复

  • 修复Makefile覆盖率:添加了``coverage combine``

  • 修复了使用``CacheStorage``时对LF字符的处理(1417

  • bugfix: skip_row() 处理使用 UUID 主键时的 M2M 字段

  • 修复指向tablib格式页面的损坏链接 (1418)

  • 修复 README.rst 中损坏的图片引用

  • bugfix: 修复当模型具有 m2m 字段且上传未提供时 skip_row() 崩溃的问题 (1439)

  • 修复示例应用中的弃用问题:添加了对过渡性表单渲染器的支持(1451

开发

  • 增加了测试覆盖率,重构了CI构建以使用tox (1372)

文档

  • 澄清了关于临时存储使用的问题 (1306)

2.9.0 (2022-09-14)

  • 修复示例应用中的弃用问题:添加了对过渡性表单渲染器的支持(1451

  • 转义渲染解码错误时的HTML输出(1469

  • 当原始文件包含实际日期时间时应用make_aware(1478

  • 在导入时自动猜测文件的格式 (1460)

2.8.0 (2022-03-31)

  • 更新了import.css以支持暗黑模式 (1318)

  • 修复当使用空Dataset调用import_data()且``collect_failed_rows=True``时导致的崩溃问题(1381

  • 改进韩语翻译 (1402)

  • 更新示例子类小部件代码 (1407)

  • 停止支持 python3.6、django 2.2、3.0、3.1 (1408)

  • 将get_export_form()添加到ExportMixin (1409)

2.7.1 (2021-12-23)

  • 从示例应用设置中移除了 django_extensions (1356)

  • 添加了对 Django 4.0 的支持 (1357)

2.7.0 (2021-12-07)

  • Integer 组件的大整数支持 (788)

  • 运行compilemessages命令以保持.mo文件同步(1299

  • 添加了 skip_html_diff 元属性 (1329)

  • 将python3.10添加到tox和CI环境列表 (1336)

  • 添加在验证错误时回滚导入的功能 (1339)

  • 修复示例应用中的缺失迁移 (1346)

  • 修复通过管理站点删除时崩溃的问题 (1347)

  • 在CI脚本中使用Github secret替代硬编码密码(1348)

  • 文档:修正示例应用中的错误,该错误导致崩溃(1353

2.6.1 (2021-09-30)

  • 还原 'dark mode' css:在 django2.2 中引发问题 (1330)

2.6.0 (2021-09-15)

  • 添加了对空 'options' 的防护以修复崩溃 (1325)

  • 更新了import.css以支持暗黑模式 (1323)

  • 修复了覆盖的mixin方法未被调用的回归问题 (1315)

  • 修复xls/xlsx中Time字段的导入 (1314)

  • 添加了对 'to_encoding' 属性的支持 (1311)

  • 移除了 travis 并替换为 github actions 用于 CI (1307)

  • 提高测试覆盖率 (1286)

  • 修复年份 < 1000 的日期格式小问题 (1285)

  • 翻译zh_Hans缺失部分(1279

  • 从mixins.py和admin.py中移除重复代码 (1277)

  • 修复 BooleanWidget 文档中的示例 (1276)

  • 对Django main的更好支持 (1272)

  • 不要用python36,37测试Django主分支(1269

  • 支持 Django 3.2 (1265)

  • 修正Readme中的拼写错误(1258

  • 重写文档字符串中的逻辑子句 (1255)

  • 支持多个数据库 (1254)

  • 将django master更新为django main(1251

  • 在 locale 中添加波斯语翻译的消息 (1249)

  • 更新俄语翻译 (1244)

  • 使用ModelAdmin.get_actions追加导出管理操作 (1241)

  • 修复makemigrations命令中的小错误(1233

  • 从CI中移除EOL Python 3.5 (1228)

  • 当缺少import_id时,CachedInstanceLoader默认为空(1225

  • 将 kwargs 添加到 import_row、import_object 和 import_field (1190)

  • 使用data_only标志调用load_workbook()(1095

2.5.0 (2020-12-30)

  • IMPORT_EXPORT_CHUNK_SIZE 的默认值更改为 100。(1196

  • 为韩语添加翻译 (1218)

  • 更新 linting、CI 和 docs。

2.4.0 (2020-10-05)

  • 修复弃用的 Django 3.1 Signal(providing_args=...) 用法。

  • 修复弃用的 Django 3.1 django.conf.urls.url() 用法。

2.3.0 (2020-07-12)

  • 为所有语言添加缺失的翻译键 (1144)

  • 添加了缺失的葡萄牙语翻译 (1145)

  • 添加哈萨克语翻译 (1161)

  • 添加批量操作 (1149)

2.2.0 (2020-06-01)

  • 处理导入一个实际具有 TrueFalseNone 值的 BooleanField。(1071

  • 将 row_number 参数添加到 before_import_row、after_import_row 和 after_import_instance (1040)

  • 如果使用了Queryset.prefetch_related,则对查询集进行分页(1050

2.1.0 (2020-05-02)

  • 修复DurationWidget对零值的处理 (1117)

  • 使导入差异视图仅显示用户可见字段的标题 (1109)

  • 使 confirm_form 在 get_import_resource_kwargs 和 get_import_data_kwargs 中可访问 (994, 1108)

  • 使用文本值初始化Decimal,修复 #1035 (1039)

  • 添加元标记 'skip_diff' 以启用跳过 diff 操作 (1045)

  • 更新文档 (1097, 1114, 1122, 969, 1083, 1093)

2.0.2 (2020-02-16)

  • 添加对 tablib >= 1.0 的支持 (1061)

  • 添加能够安装tablib支持格式的子集并节省一些自动依赖项安装的功能(需要tablib >= 1.0)

  • 在检查行的字段时使用column_name(1056

2.0.1 (2020-01-15)

  • 修复弃用的Django 3.0函数用法(1054

  • 固定 tablib 版本以避免使用新的主版本 (1063)

  • format字段始终在Django 2.2中显示 (1007)

2.0 (2019-12-03)

  • 移除了对 Django < 2.0 的支持

  • 移除了对 Python < 3.5 的支持

  • feat: 支持 Postgres JSONb 字段 (904)

1.2.0 (2019-01-10)

  • feat: 在UI中更好地展示验证错误 / 可选的模型实例验证 (852)

  • 杂务:在setup.py中使用现代setuptools(862

  • chore: 更新URL以使用https:// (863)

  • chore: 移除过时的变通方案

  • chore: 使用内存数据库运行SQLite测试

  • 修复:更改日志级别 (832)

  • 修复:更改了 get_instance() 的返回值 (842)

1.1.0 (2018-10-02)

  • 修复: Django2.1 ImportExportModelAdmin 导出 (797, 819)

  • setup: 将 django2.1 添加到测试矩阵

  • JSONWidget 用于 jsonb 字段 (803)

  • 添加 ExportActionMixin (809)

  • 添加导入导出权限 #608 (804)

  • 为 import_action() 写入临时存储 (781)

  • ForeignKeyWidget 上的 follow 关系 (798)

  • 将所有pypi.python.org URL更新为pypi.org

  • 添加了tsv导入的测试

  • 为 Python 2 的 TSV 添加了 unicode 支持

  • 添加了 ExportViewMixin (692)

1.0.1 (2018-05-17)

  • 将字段从类属性深拷贝到实例属性 (550)

  • 修复 #612: NumberWidget.is_empty() 应去除字符串类型的值的空格 (613)

  • 修复 #713:结果 qs 中未包含最后一天 (779)

  • 在开发中使用Python3兼容的MySql驱动(706

  • 修复:在 Python 3 中警告 U 模式已被弃用 (776)

  • 重构:更轻松地覆盖widgets和默认字段(769

  • 关于声明字段的更新文档 (735)

  • 自定义js用于action form也处理grappelli (719)

  • 在面包屑中使用 'verbose_name' 以匹配 Django 默认 (732)

  • 添加 Resource.get_diff_class() (745)

  • 修复并添加波兰语翻译 (747)

  • 将 raise_errors 恢复为 before_import (749)

1.0.0 (2018-02-13)

  • 切换到 semver 版本控制 (687)

  • 要求 Django>=1.8 (685)

  • 升级tox配置 (737)

0.7.0 (2018-01-17)

  • 跳过行覆盖示例 (702)

  • 针对 Django 2.0 的测试不应失败 (709)

  • 重构事务处理 (690)

  • 解决 #703 字段被遮蔽 (703)

  • 不鼓励以压缩egg形式安装(548

  • 修复了Django 2.x测试应用中的中间件设置 (696)

0.6.1 (2017-12-04)

0.6.0 (2017-11-23)

  • 重构import_row调用,使用关键字参数(585

  • 在admin/base_site.html的block bodyclass中添加了{{ block.super }}调用(582

  • 为Django的DurationField添加对DurationWidget的支持 (575)

  • GitHub bmihelac -> django-import-export 账户更新 (574)

  • 向文档添加 intersphinx 链接 (572)

  • 添加 Resource.get_import_fields() (569)

  • 修复了readme中的错误 (568)

  • Bugfix/修复 m2m 小部件清理 (515)

  • 允许为通过import_action()和export_action()渲染的模板注入上下文数据 (544)

  • Bugfix/修复 generate_log_entries() 中的异常 (543)

  • 处理导入数据集并在单独的方法中产生结果(542

  • Bugfix/修复将异常转换为字符串时的错误 (526)

  • 修复管理员集成测试以适配新的“导入完成...”消息,将捷克语翻译更新至100%覆盖率。(596

  • 使导入表单类型更易于覆盖 (604)

  • 为Field添加saves_null_values属性以控制是否在对象上保存空值(611)

  • 添加保加利亚语翻译 (656)

  • 将django 1.11添加到TravisCI (621)

  • 确保Signals代码示例在文档中正确格式化(553

  • 将Django添加为setup.py的依赖项 (634)

  • 更新对django 2.x的反向导入 (620)

  • 将Django版本分类器添加到setup.py的CLASSIFIERS中(616

  • Django 2.0的一些修复 (672)

  • 在查找ManyToMany字段时去除空格(668

  • 修复Python 3.x测试中的所有ResourceWarnings(637

  • 从README中移除下载计数徽章,因为shields.io不再支持PyPi的该功能(677

  • 添加coveralls支持和README徽章 (678)

0.5.1 (2016-09-29)

  • 法语区域设置不在pypi中(524

  • Bugfix/修复未定义的模板变量 (519)

0.5.0 (2016-09-01)

  • 在导入新实例时隐藏差异中的默认值 (458)

  • 通过函数调用向Result对象追加行以允许覆盖 (462)

  • 添加 get_resource_kwargs 以允许将请求传递给资源 (457)

  • 将Django用户暴露给get_export_data()和export() (447)

  • 添加 before_export 和 after_export 钩子 (449)

  • 触发事件 post_import, post_export 事件 (440)

  • 添加 **kwargs 到 export_data / create_dataset

  • 添加 before_import_row() 和 after_import_row() (452)

  • 将get_export_fields()添加到Resource以控制导出的字段 (461)

  • 控制用户可见字段 (466)

  • 修复使用ManyRelatedManager的模型的差异

  • 处理已清理的对象 (484)

  • 添加 after_import_instance 钩子 (489)

  • 使用优化的xlsx阅读器(482

  • 在admin文档中重新添加BookResource的resource_class(481

  • 为 process_import() 要求 POST 方法 (478)

  • 添加SimpleArrayWidget以支持使用django.contrib.postgres.fields.ArrayField (472)

  • 添加新的Diff类(477

  • 修复 #375:在 widget.clean() 中添加行,在 widget.render() 中添加 obj (479)

  • 恢复数据导入的事务处理 (480)

  • 重构导入-导出模板 (496)

  • 将文档链接更新至稳定版本,将rtfd更新为.io(507

  • 修复了捷克语翻译中的拼写错误 (495)

0.4.5 (2016-04-06)

  • 添加 FloatWidget,与模型字段 models.FloatField 一起使用 (433)

  • 修复字段中的默认值 (431, 364)

    字段构造器 default 参数是 NOT_PROVIDED 而不是 None 字段 clean 方法检查值是否在 Field.empty_values [None, ''] 中

0.4.4 (2016-03-22)

  • 修复:通过pip安装时缺少static/目录(427

  • 在导入成功消息中添加总导入数和总更新数

0.4.3 (2016-03-08)

  • 修复 MediaStorage 不遵守 read_mode 参数 (416)

  • 重置SQL序列当新对象被导入(59

  • 如果导入抛出异常则让Resource回滚(377

  • 修复了当单个值存储在m2m关系字段时的错误(177

  • 为 django.db.models.TimeField 添加支持 (381)

0.4.2 (2015-12-18)

  • 添加 xlsx 导入支持

0.4.1 (2015-12-11)

  • 修复具有动态默认可调用项的字段 (360)

0.4.0 (2015-12-02)

  • 添加Django 1.9支持

  • Django 1.4 不受支持 (348)

0.3.1 (2015-11-20)

  • 修复:在python 3中导入csv

0.3 (2015-11-20)

  • 修复:导入csv时出现的UnicodeEncodeError,该问题在0.2.9版本中引入(347

0.2.9 (2015-11-12)

  • 允许 Field.save() 关系跟随 (344)

  • 支持字段(和模型)上的默认值 (345)

  • m2m 小部件:允许尾随逗号 (343)

  • 以文本而非二进制形式打开csv文件(127

0.2.8 (2015-07-29)

  • 对数据库字段类型为 BigIntegerField 使用 IntegerWidget (302)

  • 如果USE_TZ为True,则使datetime时区感知(283)。

  • Fix 0 在数字小部件中被解释为 None (274)

  • 添加覆盖临时存储类的可能性(133, 251

  • 更好的错误报告 (259)

0.2.7 (2015-05-04)

  • Django 1.8 兼容性

  • 为Resource添加属性继承 (140)

  • 使文件名和用户可用于import_data (237)

  • 添加 to_encoding 功能 (244)

  • 在创建 instance_loader 之前调用 before_import - 修复 (193)

0.2.6 (2014-10-09)

  • 将get_diff_headers方法的使用添加到import.html模板中 (158)

  • 尝试使用 OrderedDict 而不是 SortedDict,后者在 Django 1.7 中已被弃用(157

  • 修复 #105 Unicode 导入

  • 移除无效的表单操作 "form_url" (154)

0.2.5 (2014-10-04)

  • 不要将数值类型转换为字符串 (149)

  • 将导出实现为管理员操作 (124)

0.2.4 (2014-09-18)

  • fix: get_value 在模型方法调用时引发属性错误

  • 修复了 Python 3 上的 XLS 导入问题。优化了循环

  • 修复了在从管理界面导入数据时正确跳过标记为跳过的行的问题。

  • 允许Resource.export接受可迭代对象以及querysets

  • 改善错误消息

  • 修复:正确处理NullBoleanField(115)- 不向后兼容的更改 之前None值被当作false处理

0.2.3 (2014-07-01)

  • 将separator和field关键字参数添加到ManyToManyWidget

  • 修复:不支持1900年之前的日期 (93)

0.2.2 (2014-04-18)

  • RowResult 现在存储的是异常对象而非其 repr

  • 管理员集成 - 为每个新增/更新/删除的实例添加EntryLog对象

0.2.1 (2014-02-20)

  • FIX import_file_name 表单字段可用于访问文件系统 (65)

0.2.0 (2014-01-30)

  • Python 3 支持

0.1.6 (2014-01-21)

  • 用于自定义工作流的额外钩子 (61)

0.1.5 (2013-11-29)

  • 防止在导出时缓存查询集 (44)

  • 允许在导入时跳过未更改的行 (30)

  • 更新针对Django 1.6的测试 (57)

  • 允许在``ImportExportModelAdmin``中使用不同的``ResourceClass``(49

0.1.4

  • 在字段脱水时使用 field_name 而非 column_name,修复(36

  • 处理 OneToOneField,修复(17)- 尝试访问 related_name 上的内容时出现异常。

  • 导出过滤器不工作 (23)

0.1.3

  • 修复包装

  • DB事务支持导入数据

0.1.2

  • 在导入期间支持删除对象

  • 错误修复

  • 允许字段通过自定义方法“脱水”

  • 添加了文档

0.1.1

  • 在admin集成中添加了ExportForm以选择导出文件格式

  • 重构admin集成以允许更好地处理特定格式支持的功能和更好地处理读取文本文件

  • 在Admin集成中包含所有可用格式

  • bug修复

0.1.0

  • 重构api