添加插件数据的导入和导出。
项目描述
django CMS Transfer 是一个 实验性 包,允许您从页面或占位符导出和导入插件数据。它不支持外键关系,也不会导入/导出相关数据,如 媒体。
为该项目贡献力量,赢得奖励
由于这是一个开源项目,我们欢迎所有人 参与项目 并 为他们的贡献获得奖励。成为这个精彩社区的一员,帮助我们使 django CMS 成为世界上最优秀的 CMS。
我们非常乐意收到您的反馈,包括问题和拉取请求。在提交您的拉取请求之前,请查看我们的 贡献指南。
我们感谢所有帮助创建和维护此软件包的贡献者。贡献者名单见 贡献者 部分。
文档
设置 DJANGO_CMS_TRANSFER_SERIALIZER 允许注册自定义 JSON 序列化器。一个用例示例可能是子类化 Django 内置的 python 序列化器,并让它使用 base64 编码内联图像数据。
在 setup.py 文件中的 REQUIREMENTS 部分查看其他依赖项
安装
对于手动安装
运行 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 的哈希值
算法 | 哈希值摘要 | |
---|---|---|
SHA256 | ce0676cb884f08958488fda7e0be5e2db50922e4ff70ea98c792420857fc9a35 |
|
MD5 | 33b05e2a3362529fafe4894963726073 |
|
BLAKE2b-256 | adb29c4adda7a79b6dd38fe59990513f8200b2aa0ab97abe2f0a8caed7915b4b |
djangocms_transfer-1.0.2-py3-none-any.whl的哈希值
算法 | 哈希值摘要 | |
---|---|---|
SHA256 | 49e3ef6d02729047c38d9e2f3a69b133003d65d582b1260e50ce603c5baeed6e |
|
MD5 | 0a9500b87b4dedc5fb8e451c3566e36c |
|
BLAKE2b-256 | e1fd3e522400ff464409f10aa6bb1ef3023a31a025e92200de4e0e958d47d2d7 |