跳转到主要内容

适用于Django的可插拔应用程序,帮助您通过管理界面导入/导出固定数据

项目描述

https://badge.fury.io/py/django-smuggler.svg https://travis-ci.org/semente/django-smuggler.svg?branch=master https://coveralls.io/repos/semente/django-smuggler/badge.png?branch=master

Django Smuggler 是一个适用于 Django Web 框架 的可插拔应用程序,通过自动生成的管理界面轻松导出/导入固定数据。固定数据是一个文件,包含序列化到例如 JSON 或 XML 的模型数据,Django知道如何将其导入到数据库中。

Smuggler 特别适用于在生产环境和开发环境之间传输数据库数据,但也可以用作备份工具。

项目页面

http://github.com/semente/django-smuggler

翻译

https://www.transifex.com/projects/p/django-smuggler/

安装和设置

Smuggler 在 Python 包索引 (PyPI) 上,您可以使用工具 pipeasy_install 轻松安装最新稳定版本。试试

pip install django-smuggler

或者

easy_install django-smuggler

另外,您可以从源代码安装 Smuggler,在包含 setup.py 文件的目录中运行以下命令

python setup.py install

安装后,您需要配置项目以识别 Smuggler 应用程序,将 'smuggler' 添加到您的 INSTALLED_APPS 设置中,并设置项目的 URLConf 如下所示

urlpatterns = [
    # ...
    path('admin/', include('smuggler.urls')),  # before admin url patterns!
    path('admin/', admin.site.urls),
]

然后尝试访问以下 URL

如果可以访问上述 URL,则应用程序已正确设置。请注意,这些 URL 仅对超级用户可访问。

Smuggler 还提供了一个模板,可以在更改列表页面 (change_list.html) 上显示导出和加载数据的按钮。您可以按以下方式设置您感兴趣的 ModelAdmin

class ExampleAdmin(admin.ModelAdmin):
    change_list_template = 'smuggler/change_list.html'
    ...

设置

Smuggler 有以下设置可用。您可以在项目的 settings.py 中设置它们。如果您没有设置它们,它将使用默认值

SMUGGLER_EXCLUDE_LIST

要排除从导出中的模型的列表。使用形式 'app_label.ModelName'。默认:[]。

SMUGGLER_FIXTURE_DIR

上传的 fixtures 存储在此目录中(如果请求)。默认:None。

SMUGGLER_FORMAT

导出文件的格式。Django 支持的任何序列化格式,包括 json、xml 和在某些情况下 yaml。默认:'json'。

SMUGGLER_INDENT

导出文件的缩进。默认:2。

屏幕截图

change_list.html 中的按钮

buttons on change_list.html

加载表单(已配置 SMUGGLER_FIXTURE_DIR

load form

发布说明

版本 1.0.4(2022-02-03)

  • 修复 #76

版本 1.0.3(2021-08-12)

  • 修复加载表单模板中的错误

版本 1.0.2(2020-09-28)

  • 支持 Django 3.1

版本 1.0.1(2020-05-15)

  • 修复 Python 打包设置

版本 1.0.0(2020-04-20)

  • 支持 Django 3.0

  • 放弃对 Python < 3.6 和 Django < 2.2 的支持

版本 0.9.1(2018-11-05)

  • 支持 Django 2.1

版本 0.9.0(2018-03-22)

  • 支持 Django 2.0

  • 放弃对 Django < 1.10 的支持

版本 0.8.0(2016-11-09)

  • 支持 Django 1.10

版本 0.7.0(2016-02-25)

  • 支持 Django 1.8

  • 支持 Django 1.9

  • 放弃对 Django < 1.7 的支持

  • 放弃对 Python < 2.7 的支持

版本 0.6.1(2015-11-25)

  • 通过支持 dumpdata 的 use_natural_foreign_keys 和 use_natural_primary_keys 参数来提高 Django 1.7 兼容性

版本 0.6(2014-09-18)

  • 现在支持 fixtures 上传的 HTML5 多文件上传

  • 同时支持从 SMUGGLER_FIXTURE_DIR 加载 fixtures 和上传

  • 正确识别大写文件扩展名的 fixtures

  • 现在加载 fixtures 使用 loaddata 管理命令

  • 删除 signals.py

  • 删除示例模板

  • 更干净的代码和更好的测试 :-)

版本 0.5(2014-08-21)

  • 为 /dump/ 视图添加了指定应用程序标签列表的选项

  • 改进了测试套件

  • 放弃对 Django 1.3 的支持

  • 初步支持 Python 3

版本 0.4.1(2013-11-12)

  • 变更列表模板现在与 Django 1.6 兼容

版本 0.4(2013-04-01)

  • 支持 Django 1.5+

  • 添加了德语翻译

  • 添加了一些测试

版本 0.3(2012-01-31)

  • 在加载数据和导出数据时进行了重大错误修复和改进

  • 除了 JSON 和 XML 格式外,允许导入其他格式(aa105b3,需要文档)

  • 添加了荷兰语翻译

版本 0.2(2011-08-19)

  • 支持 Django 1.2+

  • 将上传的文件作为导入的备选方案保留(问题 #1 和 #6)

  • 修复了漏洞(d73cec6)

  • 添加了波兰语、俄语、加泰罗尼亚语和巴西葡萄牙语翻译

版本 0.1.1(2010-01-20)

  • 第一个稳定版本

向后不兼容的更改

  • 删除了 AdminFormMixin(版本 0.7)

  • 删除了 signals.py(版本 0.6)

  • 将 urls 重命名为 import/export 为 load/dump(版本 0.1)

贡献

如果您在代码或文档中发现问题,请花 30 秒钟填写一个问题

对代码或翻译的贡献将受到高度赞赏。请随意分支或发送补丁。

您可以使用 Transifex 将此应用程序翻译成您的语言。访问Transifex 上的项目页面

有关此应用程序的完整作者列表,请参阅 AUTHORS 文件。

感谢互动联盟赞助项目的第一个版本。

测试

如果您正在为 django-smuggler 贡献,我们建议设置一个 virtualenv 并运行

pip install -r test-requirements.txt

然后您可以使用以下命令运行测试

make tests

在提交拉取请求之前,请通过运行以下命令测试我们的支持的 Python 和 Django 版本

tox

要查看是否需要添加测试,我们使用 coverage。您可以使用以下命令生成覆盖率报告

make coverage

要检查您的代码是否遵循风格指南,您可以运行

make lint

复制条件

Django Smuggler 是免费软件;您可以在自由软件基金会发布的GNU 较小通用公共许可证的条款下重新分发和/或修改它;许可证的第 3 版,或者(根据您的选择)任何较新版本。

Django Smuggler 的分发是希望它将是有用的,但没有任何保证;甚至没有关于其商售性或适用于特定目的的暗示性保证。有关更多信息,请参阅 GNU 较小通用公共许可证。

您应该已经收到一份 GNU 较小通用公共许可证的副本,与该程序一起;请参阅 COPYING.LESSER 文件。如果没有,请参阅https://gnu.ac.cn/licenses/

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

django-smuggler-1.0.4.tar.gz (84.6 kB 查看散列

上传时间

构建分发

django_smuggler-1.0.4-py2.py3-none-any.whl (66.5 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持