【发布时间】:2022-01-22 05:14:15
【问题描述】:
我正在将所有产品详细信息从 db 导出到 XML 文件。需要导出的字段之一是图像。有两个应该导出图像的字段。如果有一张图片(产品表)应该导出到item_image_link。如果有多个(ProductImage 表)到item_additional_image_link。
products = Product.objects.filter(product_status=True).prefetch_related('images')
for product in products:
item = ET.SubElement(channel, "item")
g_item_id = ET.SubElement(item, ("{http://base.google.com/ns/1.0}id")).text = product.sku
g_item_image_link = ET.SubElement(item, ("{http://base.google.com/ns/1.0}image_link")).text = 'http://127.0.0.1:8000'+products.image.url
for image in product.images.all():
g_item_additional_image_link = ET.SubElement(item, ("{http://base.google.com/ns/1.0}additional_image_link")).text = 'http://127.0.0.1:8000'+image.image.url
我已成功导出各个字段 item_additional_image_link 中每个产品的图像,但是根据 db 中的图像数量,它们显示在三个不同的行中。
<item>
<g:id>55555</g:id>
<g:additional_image_link>http://127.0.0.1:8000/media/photos/2021/12/20/K003-min.jpeg</g:additional_image_link>
<g:additional_image_link>http://127.0.0.1:8000/media/photos/2021/12/20/K009-min.jpeg</g:additional_image_link>
<g:additional_image_link>http://127.0.0.1:8000/media/photos/2021/12/20/image00024-min.jpeg</g:additional_image_link>
</item>
如何将上面的三行合二为一,每张图片之间用逗号分隔?比如:
<item>
<g:id>55555</g:id>
<g:additional_image_link>http://127.0.0.1:8000/media/photos/2021/12/20/K003-min.jpeg, http://127.0.0.1:8000/media/photos/2021/12/20/image00024-min.jpeg, http://127.0.0.1:8000/media/photos/2021/12/20/K009-min.jpeg</g:additional_image_link>
</item>
谢谢
【问题讨论】: