django-import-export 4.3.0__tar.gz → 4.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. {django_import_export-4.3.0 → django_import_export-4.3.2}/.gitignore +1 -0
  2. {django_import_export-4.3.0 → django_import_export-4.3.2}/PKG-INFO +2 -2
  3. {django_import_export-4.3.0 → django_import_export-4.3.2}/RELEASE.md +11 -0
  4. {django_import_export-4.3.0 → django_import_export-4.3.2}/django_import_export.egg-info/PKG-INFO +2 -2
  5. {django_import_export-4.3.0 → django_import_export-4.3.2}/django_import_export.egg-info/requires.txt +1 -1
  6. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/advanced_usage.rst +1 -1
  7. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/changelog.rst +14 -3
  8. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/_version.py +2 -2
  9. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/formats/base_formats.py +8 -2
  10. django_import_export-4.3.2/import_export/locale/de/LC_MESSAGES/django.mo +0 -0
  11. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/de/LC_MESSAGES/django.po +71 -63
  12. django_import_export-4.3.2/import_export/locale/fa/LC_MESSAGES/django.mo +0 -0
  13. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/fa/LC_MESSAGES/django.po +30 -25
  14. {django_import_export-4.3.0 → django_import_export-4.3.2}/pyproject.toml +1 -1
  15. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_command_import.py +1 -2
  16. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_model_resource_fields_generate_widgets.py +2 -0
  17. django_import_export-4.3.0/import_export/locale/de/LC_MESSAGES/django.mo +0 -0
  18. django_import_export-4.3.0/import_export/locale/fa/LC_MESSAGES/django.mo +0 -0
  19. {django_import_export-4.3.0 → django_import_export-4.3.2}/.coveragerc +0 -0
  20. {django_import_export-4.3.0 → django_import_export-4.3.2}/.editorconfig +0 -0
  21. {django_import_export-4.3.0 → django_import_export-4.3.2}/.flake8 +0 -0
  22. {django_import_export-4.3.0 → django_import_export-4.3.2}/.git-blame-ignore-revs +0 -0
  23. {django_import_export-4.3.0 → django_import_export-4.3.2}/.github/FUNDING.yml +0 -0
  24. {django_import_export-4.3.0 → django_import_export-4.3.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  25. {django_import_export-4.3.0 → django_import_export-4.3.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  26. {django_import_export-4.3.0 → django_import_export-4.3.2}/.github/ISSUE_TEMPLATE/question.md +0 -0
  27. {django_import_export-4.3.0 → django_import_export-4.3.2}/.github/pull_request_template.md +0 -0
  28. {django_import_export-4.3.0 → django_import_export-4.3.2}/.github/stale.yml +0 -0
  29. {django_import_export-4.3.0 → django_import_export-4.3.2}/.github/workflows/release.yml +0 -0
  30. {django_import_export-4.3.0 → django_import_export-4.3.2}/.github/workflows/test.yml +0 -0
  31. {django_import_export-4.3.0 → django_import_export-4.3.2}/.pre-commit-config.yaml +0 -0
  32. {django_import_export-4.3.0 → django_import_export-4.3.2}/.readthedocs.yaml +0 -0
  33. {django_import_export-4.3.0 → django_import_export-4.3.2}/AUTHORS +0 -0
  34. {django_import_export-4.3.0 → django_import_export-4.3.2}/CODE_OF_CONDUCT.md +0 -0
  35. {django_import_export-4.3.0 → django_import_export-4.3.2}/CONTRIBUTING.md +0 -0
  36. {django_import_export-4.3.0 → django_import_export-4.3.2}/LICENSE +0 -0
  37. {django_import_export-4.3.0 → django_import_export-4.3.2}/Makefile +0 -0
  38. {django_import_export-4.3.0 → django_import_export-4.3.2}/README.rst +0 -0
  39. {django_import_export-4.3.0 → django_import_export-4.3.2}/SECURITY.md +0 -0
  40. {django_import_export-4.3.0 → django_import_export-4.3.2}/django_import_export.egg-info/SOURCES.txt +0 -0
  41. {django_import_export-4.3.0 → django_import_export-4.3.2}/django_import_export.egg-info/dependency_links.txt +0 -0
  42. {django_import_export-4.3.0 → django_import_export-4.3.2}/django_import_export.egg-info/top_level.txt +0 -0
  43. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/Makefile +0 -0
  44. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/change-form-export.png +0 -0
  45. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/custom-export-form.png +0 -0
  46. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/custom-import-form.png +0 -0
  47. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/date-widget-validation-error.png +0 -0
  48. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/django-import-export-change.png +0 -0
  49. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/django-import-export-export-confirm.png +0 -0
  50. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/django-import-export-import-confirm.png +0 -0
  51. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/django-import-export-import.png +0 -0
  52. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/export-button.png +0 -0
  53. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/export_workflow.svg +0 -0
  54. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/import-button.png +0 -0
  55. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/import_workflow.svg +0 -0
  56. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/non-field-specific-validation-error.png +0 -0
  57. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/screenshots/confirm-import.png +0 -0
  58. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/screenshots/export-form.png +0 -0
  59. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/screenshots/export-selected-action.png +0 -0
  60. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/screenshots/import-complete.png +0 -0
  61. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/screenshots/import-form.png +0 -0
  62. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/screenshots/import-update-with-authors.png +0 -0
  63. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/_static/images/select-for-export.png +0 -0
  64. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/admin_integration.rst +0 -0
  65. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/api_admin.rst +0 -0
  66. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/api_exceptions.rst +0 -0
  67. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/api_fields.rst +0 -0
  68. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/api_forms.rst +0 -0
  69. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/api_instance_loaders.rst +0 -0
  70. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/api_mixins.rst +0 -0
  71. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/api_resources.rst +0 -0
  72. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/api_results.rst +0 -0
  73. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/api_tmp_storages.rst +0 -0
  74. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/api_widgets.rst +0 -0
  75. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/bulk_import.rst +0 -0
  76. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/celery.rst +0 -0
  77. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/conf.py +0 -0
  78. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/contributing.rst +0 -0
  79. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/export_workflow.rst +0 -0
  80. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/faq.rst +0 -0
  81. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/getting_started.rst +0 -0
  82. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/image_src/export_workflow.txt +0 -0
  83. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/image_src/import_workflow.txt +0 -0
  84. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/import_workflow.rst +0 -0
  85. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/index.rst +0 -0
  86. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/installation.rst +0 -0
  87. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/make.bat +0 -0
  88. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/management_commands.rst +0 -0
  89. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/release_notes.rst +0 -0
  90. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/screenshots.rst +0 -0
  91. {django_import_export-4.3.0 → django_import_export-4.3.2}/docs/testing.rst +0 -0
  92. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/__init__.py +0 -0
  93. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/admin.py +0 -0
  94. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/command_utils.py +0 -0
  95. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/declarative.py +0 -0
  96. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/exceptions.py +0 -0
  97. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/fields.py +0 -0
  98. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/formats/__init__.py +0 -0
  99. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/forms.py +0 -0
  100. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/instance_loaders.py +0 -0
  101. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/ar/LC_MESSAGES/django.mo +0 -0
  102. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/ar/LC_MESSAGES/django.po +0 -0
  103. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/bg/LC_MESSAGES/django.mo +0 -0
  104. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/bg/LC_MESSAGES/django.po +0 -0
  105. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/ca/LC_MESSAGES/django.mo +0 -0
  106. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/ca/LC_MESSAGES/django.po +0 -0
  107. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/cs/LC_MESSAGES/django.mo +0 -0
  108. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/cs/LC_MESSAGES/django.po +0 -0
  109. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/es/LC_MESSAGES/django.mo +0 -0
  110. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/es/LC_MESSAGES/django.po +0 -0
  111. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/es_AR/LC_MESSAGES/django.mo +0 -0
  112. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/es_AR/LC_MESSAGES/django.po +0 -0
  113. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/fi/LC_MESSAGES/django.mo +0 -0
  114. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/fi/LC_MESSAGES/django.po +0 -0
  115. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/fr/LC_MESSAGES/django.mo +0 -0
  116. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/fr/LC_MESSAGES/django.po +0 -0
  117. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/it/LC_MESSAGES/django.mo +0 -0
  118. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/it/LC_MESSAGES/django.po +0 -0
  119. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/ja/LC_MESSAGES/django.mo +0 -0
  120. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/ja/LC_MESSAGES/django.po +0 -0
  121. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/ko/LC_MESSAGES/django.mo +0 -0
  122. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/ko/LC_MESSAGES/django.po +0 -0
  123. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/kz/LC_MESSAGES/django.mo +0 -0
  124. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/kz/LC_MESSAGES/django.po +0 -0
  125. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/nl/LC_MESSAGES/django.mo +0 -0
  126. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/nl/LC_MESSAGES/django.po +0 -0
  127. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/pl/LC_MESSAGES/django.mo +0 -0
  128. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/pl/LC_MESSAGES/django.po +0 -0
  129. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  130. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/pt_BR/LC_MESSAGES/django.po +0 -0
  131. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/ru/LC_MESSAGES/django.mo +0 -0
  132. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/ru/LC_MESSAGES/django.po +0 -0
  133. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/sk/LC_MESSAGES/django.mo +0 -0
  134. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/sk/LC_MESSAGES/django.po +0 -0
  135. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/tr/LC_MESSAGES/django.mo +0 -0
  136. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/tr/LC_MESSAGES/django.po +0 -0
  137. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  138. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/locale/zh_Hans/LC_MESSAGES/django.po +0 -0
  139. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/management/__init__.py +0 -0
  140. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/management/commands/__init__.py +0 -0
  141. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/management/commands/export.py +0 -0
  142. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/management/commands/import.py +0 -0
  143. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/mixins.py +0 -0
  144. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/options.py +0 -0
  145. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/resources.py +0 -0
  146. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/results.py +0 -0
  147. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/signals.py +0 -0
  148. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/static/import_export/export.css +0 -0
  149. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/static/import_export/export_selectable_fields.js +0 -0
  150. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/static/import_export/guess_format.js +0 -0
  151. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/static/import_export/import.css +0 -0
  152. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/templates/admin/import_export/base.html +0 -0
  153. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/templates/admin/import_export/change_form.html +0 -0
  154. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/templates/admin/import_export/change_list.html +0 -0
  155. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/templates/admin/import_export/change_list_export.html +0 -0
  156. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/templates/admin/import_export/change_list_export_item.html +0 -0
  157. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/templates/admin/import_export/change_list_import.html +0 -0
  158. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/templates/admin/import_export/change_list_import_export.html +0 -0
  159. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/templates/admin/import_export/change_list_import_item.html +0 -0
  160. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/templates/admin/import_export/export.html +0 -0
  161. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/templates/admin/import_export/import.html +0 -0
  162. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/templates/admin/import_export/resource_fields_list.html +0 -0
  163. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/templatetags/__init__.py +0 -0
  164. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/templatetags/import_export_tags.py +0 -0
  165. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/tmp_storages.py +0 -0
  166. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/utils.py +0 -0
  167. {django_import_export-4.3.0 → django_import_export-4.3.2}/import_export/widgets.py +0 -0
  168. {django_import_export-4.3.0 → django_import_export-4.3.2}/runtests.sh +0 -0
  169. {django_import_export-4.3.0 → django_import_export-4.3.2}/setup.cfg +0 -0
  170. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/books-sample.csv +0 -0
  171. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/__init__.py +0 -0
  172. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/admin.py +0 -0
  173. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/authors.csv +0 -0
  174. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books-ISO-8859-1.csv +0 -0
  175. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books-dos.csv +0 -0
  176. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books-empty-author-email.xlsx +0 -0
  177. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books-for-delete.csv +0 -0
  178. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books-invalid-date.csv +0 -0
  179. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books-mac.csv +0 -0
  180. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books-mac.tsv +0 -0
  181. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books-no-headers.csv +0 -0
  182. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books-unicode.csv +0 -0
  183. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books-unicode.tsv +0 -0
  184. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books.csv +0 -0
  185. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books.json +0 -0
  186. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books.xls +0 -0
  187. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/books.xlsx +0 -0
  188. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/child.csv +0 -0
  189. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/exports/ebooks.csv +0 -0
  190. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/fixtures/author.json +0 -0
  191. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/fixtures/book.json +0 -0
  192. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/fixtures/category.json +0 -0
  193. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/forms.py +0 -0
  194. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0001_initial.py +0 -0
  195. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0002_book_published_time.py +0 -0
  196. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0003_withfloatfield.py +0 -0
  197. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0004_bookwithchapters.py +0 -0
  198. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0005_addparentchild.py +0 -0
  199. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0006_auto_20171130_0147.py +0 -0
  200. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0007_auto_20180628_0411.py +0 -0
  201. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0008_auto_20190409_0846.py +0 -0
  202. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0009_auto_20211111_0807.py +0 -0
  203. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0010_uuidbook.py +0 -0
  204. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0011_uuidcategory_legacybook_alter_uuidbook_id_and_more.py +0 -0
  205. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0012_delete_legacybook.py +0 -0
  206. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0013_alter_author_birthday.py +0 -0
  207. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0014_bookwithchapternumbers.py +0 -0
  208. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0015_withpositiveintegerfields.py +0 -0
  209. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0016_alter_category_options_alter_uuidcategory_options.py +0 -0
  210. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/0017_namedauthor_uuidbook_author.py +0 -0
  211. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/migrations/__init__.py +0 -0
  212. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/models.py +0 -0
  213. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/templates/core/admin/change_list.html +0 -0
  214. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/templates/core/category_list.html +0 -0
  215. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/__init__.py +0 -0
  216. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/admin_integration/__init__.py +0 -0
  217. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/admin_integration/mixins.py +0 -0
  218. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/admin_integration/test_action_export.py +0 -0
  219. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/admin_integration/test_export.py +0 -0
  220. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/admin_integration/test_import_encoding.py +0 -0
  221. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/admin_integration/test_import_errors.py +0 -0
  222. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/admin_integration/test_import_functionality.py +0 -0
  223. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/admin_integration/test_import_security.py +0 -0
  224. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/admin_integration/test_import_templates.py +0 -0
  225. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/admin_integration/test_views.py +0 -0
  226. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/resources.py +0 -0
  227. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_base_formats.py +0 -0
  228. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_command_export.py +0 -0
  229. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_command_utils.py +0 -0
  230. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_declarative.py +0 -0
  231. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_fields.py +0 -0
  232. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_forms.py +0 -0
  233. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_import_export_tags.py +0 -0
  234. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_instance_loaders.py +0 -0
  235. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_invalidrow.py +0 -0
  236. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_mixins.py +0 -0
  237. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_permissions.py +0 -0
  238. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/__init__.py +0 -0
  239. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_bulk_operations.py +0 -0
  240. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_diffs.py +0 -0
  241. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_import_export.py +0 -0
  242. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_misc.py +0 -0
  243. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/__init__.py +0 -0
  244. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_data_deletion.py +0 -0
  245. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_data_handling.py +0 -0
  246. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_data_import.py +0 -0
  247. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_deprecated_fields.py +0 -0
  248. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_dynamic_customization.py +0 -0
  249. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_error_handling.py +0 -0
  250. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_export.py +0 -0
  251. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_fields.py +0 -0
  252. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_m2m.py +0 -0
  253. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_queryset.py +0 -0
  254. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_relationship.py +0 -0
  255. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_resource.py +0 -0
  256. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_resource_factory.py +0 -0
  257. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_resource_fields.py +0 -0
  258. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_resource_postgres.py +0 -0
  259. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_resource_setup.py +0 -0
  260. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_resource_transactions.py +0 -0
  261. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_string_resource.py +0 -0
  262. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_modelresource/test_widget.py +0 -0
  263. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_natural_foreign_key.py +0 -0
  264. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_resources/test_relationships.py +0 -0
  265. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_results.py +0 -0
  266. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_tmp_storages.py +0 -0
  267. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/test_widgets.py +0 -0
  268. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/utils.py +0 -0
  269. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/tests/widget.py +0 -0
  270. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/core/views.py +0 -0
  271. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/docker/db/init-mysql-db.sh +0 -0
  272. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/docker/db/init-postgres-db.sh +0 -0
  273. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/docker-compose.yml +0 -0
  274. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/manage.py +0 -0
  275. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/scripts/__init__.py +0 -0
  276. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/scripts/bulk_import.py +0 -0
  277. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/settings.py +0 -0
  278. {django_import_export-4.3.0 → django_import_export-4.3.2}/tests/urls.py +0 -0
  279. {django_import_export-4.3.0 → django_import_export-4.3.2}/tox.ini +0 -0
@@ -9,6 +9,7 @@ dist/
9
9
  *.egg-info/
10
10
  .tox/
11
11
  .idea/
12
+ .venv/
12
13
  *.python-version
13
14
  .coverage*
14
15
  *.sw[po]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-import-export
3
- Version: 4.3.0
3
+ Version: 4.3.2
4
4
  Summary: Django application and library for importing and exporting data with included admin integration.
5
5
  Author-email: Bojan Mihelač <djangoimportexport@gmail.com>
6
6
  Maintainer-email: Matthew Hegarty <djangoimportexport@gmail.com>
@@ -55,7 +55,7 @@ License-File: LICENSE
55
55
  License-File: AUTHORS
56
56
  Requires-Dist: diff-match-patch==20241021
57
57
  Requires-Dist: Django>=4.2
58
- Requires-Dist: tablib==3.7.0
58
+ Requires-Dist: tablib>=3.7.0
59
59
  Provides-Extra: all
60
60
  Requires-Dist: tablib[all]; extra == "all"
61
61
  Provides-Extra: cli
@@ -10,6 +10,17 @@ additional config to the CI process.
10
10
 
11
11
  Ensure that `CHANGELOG.rst` is up-to-date with the correct version number and release date.
12
12
 
13
+ It's sensible to perform a clean installation of the package and ensure the server runs ok.
14
+ This can avoid issues with broken imports which may not have been picked up by integration tests.
15
+
16
+ ```
17
+ python -m venv venv
18
+ pip install django-import-export
19
+ tests/manage.py runserver
20
+ ```
21
+
22
+ Now browse http://localhost:8000 and test that the site runs ok.
23
+
13
24
  ### Perform the release
14
25
 
15
26
  To create a new published release, follow the instructions [here](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-import-export
3
- Version: 4.3.0
3
+ Version: 4.3.2
4
4
  Summary: Django application and library for importing and exporting data with included admin integration.
5
5
  Author-email: Bojan Mihelač <djangoimportexport@gmail.com>
6
6
  Maintainer-email: Matthew Hegarty <djangoimportexport@gmail.com>
@@ -55,7 +55,7 @@ License-File: LICENSE
55
55
  License-File: AUTHORS
56
56
  Requires-Dist: diff-match-patch==20241021
57
57
  Requires-Dist: Django>=4.2
58
- Requires-Dist: tablib==3.7.0
58
+ Requires-Dist: tablib>=3.7.0
59
59
  Provides-Extra: all
60
60
  Requires-Dist: tablib[all]; extra == "all"
61
61
  Provides-Extra: cli
@@ -1,6 +1,6 @@
1
1
  diff-match-patch==20241021
2
2
  Django>=4.2
3
- tablib==3.7.0
3
+ tablib>=3.7.0
4
4
 
5
5
  [all]
6
6
  tablib[all]
@@ -369,7 +369,7 @@ You can optionally configure import-export to perform model instance validation
369
369
  :attr:`~import_export.options.ResourceOptions.clean_model_instances` attribute.
370
370
 
371
371
  You can override the
372
- `full_clean() <https://docs.djangoproject.com/en/stable/ref/models/instances/#django.db.models.Model.full_clean>`_.
372
+ `full_clean() <https://docs.djangoproject.com/en/stable/ref/models/instances/#django.db.models.Model.full_clean>`_
373
373
  method to provide extra validation, either at field or instance level::
374
374
 
375
375
  class Book(models.Model):
@@ -5,12 +5,23 @@ Changelog
5
5
 
6
6
  If upgrading from v3, v4 introduces breaking changes. Please refer to :doc:`release notes<release_notes>`.
7
7
 
8
+ 4.3.2 (2024-12-01)
9
+ ------------------
10
+
11
+ - Updated Farsi translation (`2008 <https://github.com/django-import-export/django-import-export/issues/2008>`_)
12
+ - Updated German translation (`2012 <https://github.com/django-import-export/django-import-export/issues/2012>`_)
13
+
14
+ 4.3.1 (2024-11-19)
15
+ ------------------
16
+
17
+ - Fix imports for openpyxl (`2005 <https://github.com/django-import-export/django-import-export/issues/2005>`_)
18
+
8
19
  4.3.0 (2024-11-19)
9
20
  ------------------
10
21
 
11
- - Addition of import & export management commands `(`1992 <https://github.com/django-import-export/django-import-export/issues/1992>`_)
12
- - Handle ``IllegalCharacterError`` in xlsx exports `(`2001 <https://github.com/django-import-export/django-import-export/issues/2001>`_)
13
- - Add ``__repr__`` method to InvalidRow for improved debugging `(`2003 <https://github.com/django-import-export/django-import-export/issues/2003>`_)
22
+ - Addition of import & export management commands (`1992 <https://github.com/django-import-export/django-import-export/issues/1992>`_)
23
+ - Handle ``IllegalCharacterError`` in xlsx exports (`2001 <https://github.com/django-import-export/django-import-export/issues/2001>`_)
24
+ - Add ``__repr__`` method to InvalidRow for improved debugging (`2003 <https://github.com/django-import-export/django-import-export/issues/2003>`_)
14
25
 
15
26
  4.2.1 (2024-11-11)
16
27
  ------------------
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '4.3.0'
16
- __version_tuple__ = version_tuple = (4, 3, 0)
15
+ __version__ = version = '4.3.2'
16
+ __version_tuple__ = version_tuple = (4, 3, 2)
@@ -1,11 +1,13 @@
1
+ # when adding imports, ensure that they are local to the
2
+ # correct class for the file format.
3
+ # e.g. add openpyxl imports to the XLSXFormat class
4
+ # See issue 2004
1
5
  import logging
2
6
  import warnings
3
7
 
4
8
  import tablib
5
9
  from django.conf import settings
6
10
  from django.utils.translation import gettext_lazy as _
7
- from openpyxl.cell.cell import ILLEGAL_CHARACTERS_RE
8
- from openpyxl.utils.exceptions import IllegalCharacterError
9
11
  from tablib.formats import registry
10
12
 
11
13
  logger = logging.getLogger(__name__)
@@ -212,6 +214,8 @@ class XLSX(TablibFormat):
212
214
  return dataset
213
215
 
214
216
  def export_data(self, dataset, **kwargs):
217
+ from openpyxl.utils.exceptions import IllegalCharacterError
218
+
215
219
  # #1698 temporary catch for deprecation warning in openpyxl
216
220
  # this catch block must be removed when openpyxl updated
217
221
  with warnings.catch_warnings():
@@ -232,6 +236,8 @@ class XLSX(TablibFormat):
232
236
  raise ValueError(_("export failed due to IllegalCharacterError"))
233
237
 
234
238
  def _escape_illegal_chars(self, dataset):
239
+ from openpyxl.cell.cell import ILLEGAL_CHARACTERS_RE
240
+
235
241
  def _do_escape(cell):
236
242
  if type(cell) is str:
237
243
  cell = ILLEGAL_CHARACTERS_RE.sub("\N{REPLACEMENT CHARACTER}", cell)
@@ -1,13 +1,11 @@
1
- # SOME DESCRIPTIVE TITLE.
2
- # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
1
  # This file is distributed under the same license as the PACKAGE package.
4
- # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
2
+ # David Glenck <github@ihdg.ch>, 2024.
5
3
  #
6
4
  msgid ""
7
5
  msgstr ""
8
6
  "Project-Id-Version: \n"
9
7
  "Report-Msgid-Bugs-To: \n"
10
- "POT-Creation-Date: 2024-03-15 13:54+0000\n"
8
+ "POT-Creation-Date: 2024-12-01 13:15+0100\n"
11
9
  "PO-Revision-Date: 2022-10-17 17:42+0200\n"
12
10
  "Last-Translator: Jannes Blobel <jannes.blobel@inlang.com>\n"
13
11
  "Language-Team: \n"
@@ -18,42 +16,55 @@ msgstr ""
18
16
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
17
  "X-Generator: Poedit 3.1.1\n"
20
18
 
21
- #: admin.py:246 admin.py:588
19
+ #: admin.py:184 admin.py:548
20
+ #: templates/admin/import_export/change_list_import_item.html:5
21
+ #: templates/admin/import_export/import.html:19
22
+ msgid "Import"
23
+ msgstr "Importieren"
24
+
25
+ #: admin.py:254 admin.py:600
22
26
  #, python-format
23
27
  msgid "%s through import_export"
24
28
  msgstr "%s durch import_export"
25
29
 
26
- #: admin.py:254
27
- #, fuzzy
28
- #| msgid "Import finished, with {} new and {} updated {}."
30
+ #: admin.py:262
29
31
  msgid "Import finished: {} new, {} updated, {} deleted and {} skipped {}."
30
- msgstr "Import fertiggestellt, mit {} neuen und {} aktualisierten {}."
32
+ msgstr ""
33
+ "Import fertiggestellt: {} neue, {} aktualisierte, {} gelöschte und {} "
34
+ "übersprungene {}."
31
35
 
32
- #: admin.py:423
36
+ #: admin.py:431
33
37
  #, python-format
34
38
  msgid ""
35
39
  "%(exc_name)s encountered while trying to read file. Ensure you have chosen "
36
40
  "the correct format for the file."
37
41
  msgstr ""
38
- "%(exc_name)s beim Versuch, die Datei zu lesen ist aufgetretten. Stellen Sie "
39
- "sicher, dass du das richtige Format für deine Datei gewählt hast"
42
+ "%(exc_name)s trat auf, beim Versuch, die Datei zu lesen. Stelle sicher, dass "
43
+ "du das richtige Format für die Datei gewählt hast."
40
44
 
41
- #: admin.py:539 templates/admin/import_export/change_list_import_item.html:5
42
- #: templates/admin/import_export/import.html:19
43
- msgid "Import"
44
- msgstr "Importieren"
45
+ #: admin.py:504
46
+ msgid ""
47
+ "No valid data to import. Ensure your file has the correct headers or data "
48
+ "for import."
49
+ msgstr ""
50
+ "Keine gültigen Daten für den Import. Stelle sicher, dass deine Datei die "
51
+ "korrektenKopfzeilen und Daten für den Import hat."
45
52
 
46
- #: admin.py:785 templates/admin/import_export/change_form.html:8
53
+ #: admin.py:819 templates/admin/import_export/change_form.html:8
47
54
  #: templates/admin/import_export/change_list_export_item.html:5
48
55
  #: templates/admin/import_export/export.html:12
49
56
  msgid "Export"
50
57
  msgstr "Exportieren"
51
58
 
52
- #: admin.py:911
59
+ #: admin.py:952
53
60
  #, python-format
54
61
  msgid "Export selected %(verbose_name_plural)s"
55
62
  msgstr "Ausgewählte %(verbose_name_plural)s exportieren"
56
63
 
64
+ #: formats/base_formats.py:236
65
+ msgid "export failed due to IllegalCharacterError"
66
+ msgstr "Export schlug fehl wegen IllegalCharacterError"
67
+
57
68
  #: forms.py:15
58
69
  msgid "Resource"
59
70
  msgstr "Ressource"
@@ -62,43 +73,47 @@ msgstr "Ressource"
62
73
  msgid "Format"
63
74
  msgstr "Dateiformat"
64
75
 
65
- #: forms.py:58
76
+ #: forms.py:56
66
77
  msgid "File to import"
67
78
  msgstr "Zu importierende Datei"
68
79
 
69
- #: forms.py:209
80
+ #: forms.py:216
70
81
  msgid "Form is not validated, call `is_valid` first"
71
- msgstr ""
82
+ msgstr "Formular ist nicht validiert, führe zuerst `is_valid` aus"
72
83
 
73
- #: forms.py:261
84
+ #: forms.py:268
74
85
  #, python-format
75
86
  msgid "Select at least 1 field for \"%(resource_name)s\" to export"
76
- msgstr ""
87
+ msgstr "Wähle mindestens 1 Feld für \"%(resource_name)s\" zum Exportieren aus"
77
88
 
78
- #: resources.py:1137
89
+ #: resources.py:1171
79
90
  #, python-format
80
91
  msgid ""
81
92
  "The following fields are declared in 'import_id_fields' but are not present "
82
93
  "in the resource fields: %s"
83
94
  msgstr ""
95
+ "Die folgenden Felder sind in 'import_id_fields' deklariert, sind aber keine "
96
+ "Felder der Ressource: %s"
84
97
 
85
- #: resources.py:1152
98
+ #: resources.py:1186
86
99
  #, python-format
87
100
  msgid ""
88
101
  "The following fields are declared in 'import_id_fields' but are not present "
89
102
  "in the file headers: %s"
90
103
  msgstr ""
104
+ "Die folgenden Felder sind in 'import_id_fields' deklariert, aber nicht in "
105
+ "der Kopfzeile der Datei vorhanden: %s"
91
106
 
92
- #: results.py:120
107
+ #: results.py:150
93
108
  #, python-format
94
109
  msgid "call to force_str() on instance failed: %s"
95
- msgstr ""
110
+ msgstr "Aufruf von force_str() in der Instanz schlug fehl: %s"
96
111
 
97
112
  #: templates/admin/import_export/base.html:11
98
113
  msgid "Home"
99
114
  msgstr "Start"
100
115
 
101
- #: templates/admin/import_export/export.html:21
116
+ #: templates/admin/import_export/export.html:24
102
117
  #, python-format
103
118
  msgid ""
104
119
  "\n"
@@ -109,17 +124,21 @@ msgid_plural ""
109
124
  " Export %(len)s selected items.\n"
110
125
  " "
111
126
  msgstr[0] ""
127
+ "\n"
128
+ " Exportiere %(len)s ausgewähltes Element.\n"
129
+ " "
112
130
  msgstr[1] ""
131
+ "\n"
132
+ " Exportiere %(len)s ausgewählte Elemente.\n"
133
+ " "
113
134
 
114
- #: templates/admin/import_export/export.html:48
135
+ #: templates/admin/import_export/export.html:51
115
136
  #: templates/admin/import_export/resource_fields_list.html:5
116
- #, fuzzy
117
- #| msgid "This importer will import the following fields: "
118
137
  msgid "This exporter will export the following fields: "
119
- msgstr "Es werden die folgenden Felder importiert: "
138
+ msgstr "Es werden die folgenden Felder exportiert: "
120
139
 
121
- #: templates/admin/import_export/export.html:76
122
- #: templates/admin/import_export/import.html:69
140
+ #: templates/admin/import_export/export.html:85
141
+ #: templates/admin/import_export/import.html:73
123
142
  msgid "Submit"
124
143
  msgstr "Absenden"
125
144
 
@@ -135,20 +154,20 @@ msgstr ""
135
154
  msgid "Confirm import"
136
155
  msgstr "Import bestätigen"
137
156
 
138
- #: templates/admin/import_export/import.html:80
139
- #: templates/admin/import_export/import.html:121
157
+ #: templates/admin/import_export/import.html:84
158
+ #: templates/admin/import_export/import.html:125
140
159
  msgid "Errors"
141
160
  msgstr "Fehler"
142
161
 
143
- #: templates/admin/import_export/import.html:94
162
+ #: templates/admin/import_export/import.html:98
144
163
  msgid "Line number"
145
164
  msgstr "Zeilennummer"
146
165
 
147
- #: templates/admin/import_export/import.html:113
166
+ #: templates/admin/import_export/import.html:117
148
167
  msgid "Some rows failed to validate"
149
168
  msgstr "Die Validierung einiger Zeilen schlug fehl"
150
169
 
151
- #: templates/admin/import_export/import.html:115
170
+ #: templates/admin/import_export/import.html:119
152
171
  msgid ""
153
172
  "Please correct these errors in your data where possible, then reupload it "
154
173
  "using the form above."
@@ -156,53 +175,42 @@ msgstr ""
156
175
  "Bitte korrigiere falls möglich diese Fehler in deiner Datei und lade sie "
157
176
  "anschließend erneut mit dem obigen Formular hoch."
158
177
 
159
- #: templates/admin/import_export/import.html:120
178
+ #: templates/admin/import_export/import.html:124
160
179
  msgid "Row"
161
180
  msgstr "Zeile"
162
181
 
163
- #: templates/admin/import_export/import.html:147
182
+ #: templates/admin/import_export/import.html:151
164
183
  msgid "Non field specific"
165
184
  msgstr "Nicht feldspezifisch"
166
185
 
167
- #: templates/admin/import_export/import.html:170
186
+ #: templates/admin/import_export/import.html:174
168
187
  msgid "Preview"
169
188
  msgstr "Vorschau"
170
189
 
171
- #: templates/admin/import_export/import.html:185
190
+ #: templates/admin/import_export/import.html:189
172
191
  msgid "New"
173
192
  msgstr "Neu"
174
193
 
175
- #: templates/admin/import_export/import.html:187
194
+ #: templates/admin/import_export/import.html:191
176
195
  msgid "Skipped"
177
196
  msgstr "Übersprungen"
178
197
 
179
- #: templates/admin/import_export/import.html:189
198
+ #: templates/admin/import_export/import.html:193
180
199
  msgid "Delete"
181
200
  msgstr "Löschen"
182
201
 
183
- #: templates/admin/import_export/import.html:191
202
+ #: templates/admin/import_export/import.html:195
184
203
  msgid "Update"
185
- msgstr "Update"
204
+ msgstr "Ändern"
186
205
 
187
206
  #: templates/admin/import_export/resource_fields_list.html:7
188
207
  msgid "This importer will import the following fields: "
189
208
  msgstr "Es werden die folgenden Felder importiert: "
190
209
 
191
- #: widgets.py:250
192
- msgid "Value could not be parsed using defined date formats."
193
- msgstr ""
194
-
195
- #: widgets.py:300
196
- msgid "Value could not be parsed using defined datetime formats."
197
- msgstr ""
198
-
199
- #: widgets.py:346
200
- msgid "Value could not be parsed using defined time formats."
201
- msgstr ""
202
-
203
- #: widgets.py:374
210
+ #: widgets.py:369
204
211
  msgid "Value could not be parsed."
205
- msgstr ""
212
+ msgstr "Wert konnte nicht eingelesen werden."
206
213
 
207
- #~ msgid "You must select an export format."
208
- #~ msgstr "Es muss ein Exportformat ausgewählt werden."
214
+ #: widgets.py:497
215
+ msgid "use_natural_foreign_keys and key_is_id cannot both be True"
216
+ msgstr "use_natural_foreign_keys und key_is_id können nicht beide True sein"
@@ -2,13 +2,14 @@
2
2
  # This file is distributed under the same license as the django-import-export package.
3
3
  #
4
4
  # Yazdan Ranjbar <Yazdan_ra@icloud.com>, 2021.
5
+ # MohammadReza Sadegh Zadeh <org.m.sdz@gmail.com>, 2024.
5
6
  msgid ""
6
7
  msgstr ""
7
8
  "Project-Id-Version: 0.0.1\n"
8
9
  "Report-Msgid-Bugs-To: \n"
9
10
  "POT-Creation-Date: 2024-03-15 13:54+0000\n"
10
11
  "PO-Revision-Date: 2021-03-09 00:29+0030\n"
11
- "Last-Translator: Yazdan Ranjbar <Yazdan_ra@icloud.com>\n"
12
+ "Last-Translator: MohammadReza Sadegh Zadeh <org.m.sdz@gmail.com>\n"
12
13
  "Language-Team: Persain/Farsi <kde-i18n-it@kde.org>\n"
13
14
  "Language: Farsi/Persian\n"
14
15
  "MIME-Version: 0.1\n"
@@ -20,20 +21,20 @@ msgstr ""
20
21
  #: admin.py:246 admin.py:588
21
22
  #, python-format
22
23
  msgid "%s through import_export"
23
- msgstr "%s یه وسیله ورودی-خروجی"
24
+ msgstr "%s با استفاده از ورودی-خروجی"
24
25
 
25
26
  #: admin.py:254
26
27
  #, fuzzy
27
28
  #| msgid "Import finished, with {} new and {} updated {}."
28
29
  msgid "Import finished: {} new, {} updated, {} deleted and {} skipped {}."
29
- msgstr "بارگذاری تمام شد، با {} مورد جدید و {} مورد به روز شده."
30
+ msgstr "بارگذاری تمام شد، با {} مورد جدید، {} مورد به روز شده، {} مورد حذف شده و {} مورد در شده."
30
31
 
31
32
  #: admin.py:423
32
33
  #, python-format
33
34
  msgid ""
34
35
  "%(exc_name)s encountered while trying to read file. Ensure you have chosen "
35
36
  "the correct format for the file."
36
- msgstr ""
37
+ msgstr "در حال خواندن فایل، یک خطا رخ داده است. لطفا از فرمت مناسب برای فایل استفاده کنید. %(exc_name)s"
37
38
 
38
39
  #: admin.py:539 templates/admin/import_export/change_list_import_item.html:5
39
40
  #: templates/admin/import_export/import.html:19
@@ -53,7 +54,7 @@ msgstr "خروجی %(verbose_name_plural)s انتخاب شده"
53
54
 
54
55
  #: forms.py:15
55
56
  msgid "Resource"
56
- msgstr ""
57
+ msgstr "منبع"
57
58
 
58
59
  #: forms.py:20
59
60
  msgid "Format"
@@ -61,35 +62,35 @@ msgstr "فرمت"
61
62
 
62
63
  #: forms.py:58
63
64
  msgid "File to import"
64
- msgstr "قایل برای بارگذاری"
65
+ msgstr "فایل برای بارگذاری"
65
66
 
66
67
  #: forms.py:209
67
68
  msgid "Form is not validated, call `is_valid` first"
68
- msgstr ""
69
+ msgstr "فرم معتبر نیست، ابتدا `is_valid` را فراخوانی کنید"
69
70
 
70
71
  #: forms.py:261
71
72
  #, python-format
72
73
  msgid "Select at least 1 field for \"%(resource_name)s\" to export"
73
- msgstr ""
74
+ msgstr "حداقل یک فیلد را برای \"%(resource_name)s\" برای خروجی انتخاب کنید"
74
75
 
75
76
  #: resources.py:1137
76
77
  #, python-format
77
78
  msgid ""
78
79
  "The following fields are declared in 'import_id_fields' but are not present "
79
80
  "in the resource fields: %s"
80
- msgstr ""
81
+ msgstr "فیلد‌های زیر در 'import_id_fields' اعلام شده اند، اما در فیلد‌های منبع وجود ندارند: %s"
81
82
 
82
83
  #: resources.py:1152
83
84
  #, python-format
84
85
  msgid ""
85
86
  "The following fields are declared in 'import_id_fields' but are not present "
86
87
  "in the file headers: %s"
87
- msgstr ""
88
+ msgstr "فیلد‌های زیر در 'import_id_fields' اعلام شده اند، اما در فیلد‌های منبع وجود ندارند: %s"
88
89
 
89
90
  #: results.py:120
90
91
  #, python-format
91
92
  msgid "call to force_str() on instance failed: %s"
92
- msgstr ""
93
+ msgstr "فراخوانی به `force_str()` بر روی مورد نمونه با خطا رخ داده است: %s"
93
94
 
94
95
  #: templates/admin/import_export/base.html:11
95
96
  msgid "Home"
@@ -106,14 +107,20 @@ msgid_plural ""
106
107
  " Export %(len)s selected items.\n"
107
108
  " "
108
109
  msgstr[0] ""
110
+ "\n"
111
+ " خروجی %(len)s مورد انتخاب شده.\n"
112
+ " "
109
113
  msgstr[1] ""
114
+ "\n"
115
+ " خروجی %(len)s مورد انتخاب شده.\n"
116
+ " "
110
117
 
111
118
  #: templates/admin/import_export/export.html:48
112
119
  #: templates/admin/import_export/resource_fields_list.html:5
113
120
  #, fuzzy
114
121
  #| msgid "This importer will import the following fields: "
115
122
  msgid "This exporter will export the following fields: "
116
- msgstr "این بارگذاری شامل این فیلد‌ها هست:"
123
+ msgstr "این خروجی شامل این فیلد‌ها هست:"
117
124
 
118
125
  #: templates/admin/import_export/export.html:76
119
126
  #: templates/admin/import_export/import.html:69
@@ -124,9 +131,7 @@ msgstr "ارسال"
124
131
  msgid ""
125
132
  "Below is a preview of data to be imported. If you are satisfied with the "
126
133
  "results, click 'Confirm import'"
127
- msgstr ""
128
- "پایین یک پیش‌نمایش از دیتا‌هایی است که بارگذاری خواهند شد اگر این موارد درست "
129
- "هستروی 'تایید بارگذاری' گلیگ گنید"
134
+ msgstr "پایین یک پیش‌نمایش از دیتا‌هایی است که بارگذاری خواهند شد اگر این موارد درست هستند، روی 'تایید بارگذاری' کلیک کنید"
130
135
 
131
136
  #: templates/admin/import_export/import.html:33
132
137
  msgid "Confirm import"
@@ -143,7 +148,7 @@ msgstr "شماره خط"
143
148
 
144
149
  #: templates/admin/import_export/import.html:113
145
150
  msgid "Some rows failed to validate"
146
- msgstr "برخی از سطر‌ها معتبر نبودند"
151
+ msgstr "برخی سطر‌ها معتبر نبودند"
147
152
 
148
153
  #: templates/admin/import_export/import.html:115
149
154
  msgid ""
@@ -153,7 +158,7 @@ msgstr "لطفا این خطا را تصحیح کنید و سپس مجدد فا
153
158
 
154
159
  #: templates/admin/import_export/import.html:120
155
160
  msgid "Row"
156
- msgstr "سظر"
161
+ msgstr "سطر"
157
162
 
158
163
  #: templates/admin/import_export/import.html:147
159
164
  msgid "Non field specific"
@@ -161,7 +166,7 @@ msgstr "فیلد‌های غیر اختصاصی"
161
166
 
162
167
  #: templates/admin/import_export/import.html:170
163
168
  msgid "Preview"
164
- msgstr "نمایش"
169
+ msgstr "پیش‌نمایش"
165
170
 
166
171
  #: templates/admin/import_export/import.html:185
167
172
  msgid "New"
@@ -169,7 +174,7 @@ msgstr "جدید"
169
174
 
170
175
  #: templates/admin/import_export/import.html:187
171
176
  msgid "Skipped"
172
- msgstr "در شد"
177
+ msgstr "رد شده"
173
178
 
174
179
  #: templates/admin/import_export/import.html:189
175
180
  msgid "Delete"
@@ -185,19 +190,19 @@ msgstr "این بارگذاری شامل این فیلد‌ها هست:"
185
190
 
186
191
  #: widgets.py:250
187
192
  msgid "Value could not be parsed using defined date formats."
188
- msgstr ""
193
+ msgstr "مقدار قابل تجزیه نبود با فرمت‌های تاریخ تعریف شده."
189
194
 
190
195
  #: widgets.py:300
191
196
  msgid "Value could not be parsed using defined datetime formats."
192
- msgstr ""
197
+ msgstr "مقدار قابل تجزیه نبود با فرمت‌های تاریخ و زمان تعریف شده."
193
198
 
194
199
  #: widgets.py:346
195
200
  msgid "Value could not be parsed using defined time formats."
196
- msgstr ""
201
+ msgstr "مقدار قابل تجزیه نبود با فرمت‌های زمان تعریف شده."
197
202
 
198
203
  #: widgets.py:374
199
204
  msgid "Value could not be parsed."
200
- msgstr ""
205
+ msgstr "مقدار قابل تجزیه نبود."
201
206
 
202
- #~ msgid "You must select an export format."
203
- #~ msgstr "شما باید یک فرمت خروجی انتخاب کنید"
207
+ msgid "You must select an export format."
208
+ msgstr "شما باید یک فرمت خروجی انتخاب کنید"
@@ -38,7 +38,7 @@ classifiers = [
38
38
  dependencies = [
39
39
  "diff-match-patch==20241021",
40
40
  "Django>=4.2",
41
- "tablib==3.7.0"
41
+ "tablib>=3.7.0"
42
42
  ]
43
43
 
44
44
  [project.optional-dependencies]
@@ -3,14 +3,13 @@ from io import BytesIO, StringIO, TextIOWrapper
3
3
  from unittest import mock
4
4
  from unittest.mock import patch
5
5
 
6
- from build.lib.import_export.resources import ModelResource
7
6
  from core.models import Book
8
7
  from django.core.management import call_command
9
8
  from django.core.management.base import CommandError
10
9
  from django.test import TestCase
11
10
 
12
11
  from import_export.formats.base_formats import XLSX
13
- from import_export.resources import modelresource_factory
12
+ from import_export.resources import ModelResource, modelresource_factory
14
13
 
15
14
  CSV_CONTENT = """\
16
15
  id,name,author,author_email,imported,published,published_time,price,added,categories
@@ -119,6 +119,8 @@ class TestFieldWidgetMapping(TestCase):
119
119
  expected_not_presented_fields |= {models.GeneratedField}
120
120
  if django.VERSION >= (5, 1):
121
121
  expected_not_presented_fields |= {contenttype_fields.GenericForeignKey}
122
+ if django.VERSION >= (5, 2):
123
+ expected_not_presented_fields |= {models.CompositePrimaryKey}
122
124
  return expected_not_presented_fields
123
125
 
124
126
  def _get_all_django_model_field_subclasses(self):