gpt4 book ai didi

plone - 将 Archetype 新闻项目迁移到 Dexterity 内容类型

转载 作者:行者123 更新时间:2023-12-04 15:00:36 24 4
gpt4 key购买 nike

我正在尝试将新闻项目中的内容复制到我编写的其他内容类型。在我的脚本中,我有 news项目和 project元素。第二个,project , 是使用 Dexterity 定义的内容类型。如果我能从 news 复制图像和正文就太好了至project在下一个方式。

project.text = news.text
project.image = news.image

其中文本和图像在 project 中定义架构为 RichText 和 NamedBlobImage。我不知道新闻项目中的属性如何。我只知道可以使用 getImage()的方法获取新闻中的图片但是将其分配给项目会在渲染项目时产生错误。

所以我需要一些指针来解决我的基本问题:
  • 我如何知道 Archetype 内容类型的属性名称。例如,在这种情况下,我需要知道新闻项目正文的属性名称。
  • 如何将附加到新闻项目的图像转换为附加到灵巧内容类型的图像。
  • 最佳答案

  • 您使用 Archetypes 模式中的字段来检索值,在这种情况下最好是原始值。你传入对象然后调用 .get().getRaw() :
    schema = news.Schema()
    news = schema.getField('text').getRaw(news)
    imageField = schema.getField('image')
    image = imageField.getRaw(news)
    content_type = imageField.getContentType(news)
    filename = imageField.getFilename(news)
  • ImageField.getRaw() 返回的对象电话基本上是 OFS.Image实例。您可以调用str()在其上获取原始图像数据。

    要设置图像对象,您真的想从架构中获取图像字段并使用它的 ._type作为工厂的属性:
    project.image = IProjectInterface.image._type(str(image),
    contentType=content_type, filename=filename)

    这里的内容类型是可选的; NamedImageNamedBlobImage types 也会自动嗅出内容类型。
  • 关于plone - 将 Archetype 新闻项目迁移到 Dexterity 内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15692531/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com