跳转到主要内容

允许数据库对象有多个图片

项目描述

License: AGPL-3

多图片基础

此模块扩展了任何模型的功能,以支持附加到其上的多个图片(相册)并允许您管理它们。

安装

此模块添加了抽象模型以进行工作。它的唯一目的是作为实现相册的其他模块的基础,因此如果您手动安装此模块,您将不会注意到任何变化。您应该安装任何基于此模块的其他模块,这将自动安装。

使用

要管理所有存储的图片,您需要

  • 转到 设置 > 技术 > 多图片

…但是您可能更喜欢通过继承此行为的子模块提供的表单来管理它们。

开发

要开发基于此模块的模块

  • product_multi_image模块为例。

  • 您必须将模型base_multi_image.owner继承到需要相册的模型中

    class MyOwner(models.Model):
        _name = "my.model.name"
        _inherit = ["my.model.name", "base_multi_image.owner"]
    
        # If you need this, you will need ``pre_init_hook_for_submodules`` and
          ``uninstall_hook_for_submodules`` as detailed below.
        old_image_field = fields.Binary(related="image_main", store=False)
  • 在所有者视图的某个位置添加

    <field
        name="image_ids"
        nolabel="1"
        context="{
            'default_owner_model': 'my.model.name',
            'default_owner_id': id,
        }"
        mode="kanban"/>
  • 如果您正在扩展的模型已经有一个图片字段,并且您想欺骗Odoo将这些图片转换为多图片模式,您将需要使用提供的~.hooks.pre_init_hook_for_submodules~.hooks.uninstall_hook_for_submodules,就像product_multi_image模块所做的那样

    try:
        from openerp.addons.base_multi_image.hooks import (
            pre_init_hook_for_submodules,
            uninstall_hook_for_submodules,
        )
    except ImportError:
        pass
    
    
    def pre_init_hook(cr):
        """Transform single into multi images."""
        pre_init_hook_for_submodules(cr, "product.template", "image")
        pre_init_hook_for_submodules(cr, "product.product", "image_variant")
    
    
    def uninstall_hook(cr, registry):
        """Remove multi images for models that no longer use them."""
        uninstall_hook_for_submodules(cr, registry, "product.template")
        uninstall_hook_for_submodules(cr, registry, "product.product")
Try me on Runbot

已知问题/路线图

  • 操作系统文件存储模式适用于图像,其目的是提供一个路径,Odoo 可以从中读取,且图像已经存在,不是用于让模块在此处存储图像。虽然添加该功能会很好。

缺陷追踪器

缺陷在 GitHub Issues 上进行跟踪。如果遇到问题,请检查是否已报告您的问题。如果您是第一个发现的,请通过提供详细且受欢迎的 反馈 帮助我们解决问题。

致谢

原始实现

本模块受到来自 OpenLabs 和 Akretion 的先前模块 product_images 的启发。

贡献者

维护者

Odoo Community Association

本模块由 OCA 维护。

OCA,或 Odoo 社区协会,是一个非营利组织,其使命是支持 Odoo 功能的协作开发并推广其广泛使用。

要为此模块做出贡献,请访问 http://odoo-community.org

项目详情


下载文件

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

源分发

本发布版本没有可用的源分发文件。请参阅生成分发存档的教程

构建分发

由以下提供支持