python - Wagtail:如何获取图像再现 url 并将其与 json 中的其他字段一起传递?
问题描述
我将所有模型的数据传递给模板的上下文,以便在一个小的 vue 实例中使用它:
data = serializers.serialize("json", MyModel.objects.child_of(self).live().public())
我的模型有一个图像:
header = models.ForeignKey(
"wagtailimages.Image",
null=True,
blank=False,
on_delete=models.SET_NULL,
related_name="+",
)
现在我想添加图像渲染 url 以便能够在我的 vue 应用程序中处理渲染:
url = myimage.get_rendition('fill-300x186|jpegquality-60').url
但我在这个角色上挣扎myimage
。恐怕我想解决的方法行不通,因为我处于模型级别并且还没有关于图像的信息,对吧?那么有没有用我的其他字段作为json查询/传递图像再现?
我知道 API 可以处理图像再现:
APIField("header", serializer=ImageRenditionField("fill-300x200|jpegquality-80"))
我不能使用 API,只喜欢模仿这种行为。
解决方案
我回过头来,意识到我的第一个答案是垃圾。我认为您可以做的是创建一个属性,该属性将其存储为属性。
@property
def rendition_url(self):
url = self.header.get_rendition('fill-300x186|jpegquality-60').url
return url
然后您必须构建一个自定义序列化程序来解析为 JSON。
这个答案提供了一个明确的例子,如何做到这一点。最佳答案已过时。使用下一个示例。
推荐阅读
- python - SQLAlchemy中两个关联表的多个连接?
- c++ - Wy 是 QMetaObject::invokemethod 从错误对象中搜索函数
- google-cloud-platform - GKE Spring 容器 - CloudSQL 失败 - 403 Forbidden
- javascript - 如何编写与字谜匹配的函数并将它们放入列表中?
- javascript - 如果我们在输入框中为 value 属性设置了 state,那么当我们在 react 中点击 escape 时,我们如何设置之前的值呢?
- c# - 如何制作 GenericeFunction
用“未知”类型工作? - node.js - 使用 PM2 部署的节点应用程序在错误 Amazon EC2 上具有 100% 的正常运行时间
- sql - 错误:类型“jsonb_array_elements”不存在
- amazon-web-services - IntellIJ 中的 AWS Toolkit 可以与 localstack 一起使用吗?
- visual-studio-code - 如何在树视图 VS 代码扩展中选择多个项目