Photo FAQ --------- 1) Will you add property 'xyz' to the default Photo properites? In short, no. I purposefully left the properties to the minimum required id and title because everyone will want a different set of properties. I've gotten numerous requests for equally numerous different default properties. The Photo Folder object is designed to provide containing Photo objects with whatever default properties you want. It works like this: 1) Add a Photo Folder object. 2) Go to the 'Photo Properties' tab and add the properties you want each photo to have. 3) Go to the 'Displays' tab and add/remove/modify the display sizes you want each photo to have. 4) When you add photos to this Photo Folder, each one will automatically get the specified properties and generate the specified display sizes. 2) How do I add a Photo Folder/Photo object from DTML/Python Script? See the source for all of the optional parameters, but here are the basics: Photo Folder: context.manage_addProduct['Photo'].manage_addPhotoFolder(id, title) Photo: context.manage_addProduct['Photo'].manage_addPhoto(id, title, file) 3) How do I copy the EXIF creation date into a property The Photo product reads the EXIF values into a separate property sheet, because there are so many of little use, and they clutter up your own properties. If there is an EXIF property you want to show on all photos you can use this python script to copy it to a general property. for photo in container.objectValues('Photo'): exifprop = photo.propertysheets.get('exif') if exifprop is not None: for (key,value) in exifprop.propertyItems(): # This is about the only useful EXIF value if key == "EXIF_DateTimeOriginal": photo.manage_addProperty("created_date",value, "string")