Sascha Ottolski wrote:
> I'm wondering if anything already exists, that would allow me to define 
> a schema like (pseudo)
> IPerson(Interface):
>     image = File(
>         max_size=100,
>         )
> Person(Persistent):
>     implements(IPerson)
>     image = FileProperty(form_fields['image'])
> with the result, that the image attribute behaves pretty much like an 
> IImage, that is, has contentType and size associated with it, and might 
> be easily displayed with the help of something like 
> I already tried to create such a Property, as well as using 
> schema.Object, but wasn't really successfull :-(

Hi Sacha, I've used something like this...

class IPerson(Interface):
    required=False, # You may need this depending on validation needs..

class Person(Persistent):

If you want to make the image attribute traversable (via the url) the
z3c.traverser package can do the job.

> Of course, I can do all this "by hand" for each content object by adding 
> a contentType attribute and providing some views, but I have the 
> feeling that there would exist a smarter way to to this.
> Adding to this, is there a way to register views with "fuzzy" names? 
> Think of a class
> Person:
>     resume = File()
> Now, to help the logfile analyzer, I would like to have a view 
> named "resume.%s', so that if resume is a Word document, it could be 
> accesed as /person1/resume.doc, if resume is PDF, access would 
> be /person1/resume.pdf. I could register several views for common 
> suffixes, but than there comes a buy with one no one thought of. May be 
> this is a stupid idea anyway :-)

Have a look at zope.publisher.interfaces.IPublishTraverse to hook in
your own handler for traversing a Person object.


Zope3-users mailing list

Reply via email to