Odoo.sh 15...
This is for Product Variants, but same concept.
In Studio, I made a new text field called "Image URL" (which auto-gets a technical name of x_studio_image_url
).
Then, since I still don't know after 2+ years how to make Stored values work like they're supposed to in Odoo.sh, I created an (inactive) Scheduled Action that I run manually to set all the fields' values:
base_url = env['ir.config_parameter'].sudo().get_param('web.base.url')
products = env['product.product'].search([])
query = """
UPDATE product_product
SET x_studio_image_url = %s
WHERE id = %s
"""
for record in products:
image_url_1920 = base_url + '/web/image?model=product.product&id=' + str(record.id) + '&field=image_1920'
env.cr.execute(query, (image_url_1920, record.id))
Here's the code you'd put in the custom field's code if I ever learned how to make "Stored" fields work. It works if the custom field is not "Stored", but as soon as you make it "Stored" the field goes blank. (It probably needs to be "Stored" in order to use in an API or export.) I just set the required "Dependency" field to something random like "name".
for record in self:
base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url')
image_url_1920 = base_url + '/web/image?' + 'model=product.product&id=' + str(record.id) + '&field=image_1920'
record['x_studio_imageurl_text'] = image_url_1920
(If somebody could enlighten me on how to make Stored Odoo fields that don't show as blank values, that'd be sweet too...)