跳转到主要内容

添加插件数据的导入和导出。

项目描述

pypi build coverage

django CMS Transfer 是一个 实验性 包,允许您从页面或占位符导出和导入插件数据。它不支持外键关系,也不会导入/导出相关数据,如 媒体

preview.gif

为该项目贡献力量,赢得奖励

由于这是一个开源项目,我们欢迎所有人 参与项目为他们的贡献获得奖励。成为这个精彩社区的一员,帮助我们使 django CMS 成为世界上最优秀的 CMS。

我们非常乐意收到您的反馈,包括问题和拉取请求。在提交您的拉取请求之前,请查看我们的 贡献指南

我们感谢所有帮助创建和维护此软件包的贡献者。贡献者名单见 贡献者 部分。

文档

设置 DJANGO_CMS_TRANSFER_SERIALIZER 允许注册自定义 JSON 序列化器。一个用例示例可能是子类化 Django 内置的 python 序列化器,并让它使用 base64 编码内联图像数据。

setup.py 文件中的 REQUIREMENTS 部分查看其他依赖项

python django djangocms

安装

对于手动安装

  • 运行 pip install djangocms-transfer

  • djangocms_transfer 添加到您的 INSTALLED_APPS

  • 运行 python manage.py migrate djangocms_transfer

自定义

以下设置可用

  • DJANGOCMS_TRANSFER_PROCESS_EXPORT_PLUGIN_DATA:

    启用在序列化之前处理插件实例,例如 myapp.module.function

  • DJANGOCMS_TRANSFER_PROCESS_IMPORT_PLUGIN_DATA:

    启用在保存之前处理插件实例,例如 myapp.module.function。例如:为 ForeignKeys 设置默认值(例如 django_filer 的图像)

例如,_PROCESS_EXPORT_PLUGIN_DATA_PROCESS_IMPORT_PLUGIN_DATA 的组合允许您在不同系统之间导出和导入数据,同时根据需要设置内容

# settings.py
.._PROCESS_EXPORT_PLUGIN_DATA = "myapp.some.module.export_function"
.._PROCESS_IMPORT_PLUGIN_DATA = "myapp.some.module.import_function"

# custom functions
def export_function(plugin, plugin_data):
    # remove child-plugins which can't be handled
    if plugin.parent_id and plugin.parent.plugin_type == "SomeParentPlugin":
        return None
    # change data
    if plugin.plugin_type == "SomePlugin":
        plugin_data["data"].update({
            "some_field": "TODO: change me",
        })
    return plugin_data

def import_function(deserialized_object):
    some_related_object = MyModel.objects.first()
    for field in deserialized_object.object._meta.fields:
        # example of setting a default value for a related field
        if isinstance(field, ForeignKey):
            value = getattr(deserialized_object.object, field.attname)
            if field.related_model == MyModel and value is not None:
                setattr(deserialized_object.object, field.name, some_related_object)

运行测试

您可以通过执行以下操作来运行测试

virtualenv env
source env/bin/activate
pip install -r tests/requirements/base.txt
python setup.py test

对于代码格式化,使用 black。要自动修复来自 black 报告的错误,您可以通过虚拟环境安装它,并运行 pip install -r tests/requirements/base.txt。之后,只需运行 tools/black

项目详情


下载文件

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

源分发

djangocms_transfer-1.0.2.tar.gz (18.9 kB 查看哈希值)

上传时间

构建分发

djangocms_transfer-1.0.2-py3-none-any.whl (21.2 kB 查看哈希值)

上传时间 Python 3

由以下机构支持