On Aug 4, 2005, at 1:19 PM, Fred Drake wrote:

On 8/4/05, Alec Munro <[EMAIL PROTECTED]> wrote:

We want to allow a choice field with an "other" option, that allows
them to type in an arbitrary value. So far, we have this working up
until the point of validation. At the point of validation, it notices
that the other value is not in the vocabulary, and raises
My initial thought is to create a new field type for
"SuggestedChoice", that simply doesn't perform the checking against
the vocabulary values. Has anyone else run up against this?

I haven't dealt with this, but have a bit of a suggestion as to an
approach you can take.  The details will vary depending on whether you
want the added values to be shared across all instances or only be
available on a per-object basis.

You'll need to use a named vocabulary, so the factory will take the
context object as an argument.  This allows you to construct the
vocabulary based on the common values plus the values added.  A custom
widget for your vocabulary would be responsible for managing the added

If the added values should be specific only to a particular content
object, you can use an annotation to store added values, or simply
decide that values present on the object are already considered valid
(since you allowed them at some point), and maintain anything added
but not applied yet within the form fields.

Just to highlight: note that this part can only currently work with vocabularies, as opposed to sources, since sources don't have access to context.


Zope3-users mailing list

Reply via email to