You are probably experiencing a ValidationError in the .validate() method of your "language" field. This is probably because TextLine expect the values to be unicode whereas the vocabulary in your widget has (8-bit) string values ("voc = SimpleVocabulary.fromItems([('de','German'), ('en','English')])".
Maken Seteva wrote: > > Hi! > I'm having serious problems with getting a selectwidget/ > dropdownwidget working.. > What I want to do is to add a widget for the language field of a > MessageCatalog. > Btw, a snippet from the interface (in zope.app.i18n.messagecatalog): > > class IMessageCatalog(Interface): > #... > language = TextLine( > title=u"Language", > description=u"The language the catalog translates to.", > required=True) > #... > > > I already have an add view working but instead of manually filling in > 'en' for english, > 'de' for german, etc. I now have a widget that generates this: > > <select> > <option value="en">English</option> > <option value="de">German</option> > <option ...etc > > > But the thing is, I keep getting "Language: Object is of wrong > type." displayed to me > when I click the add button (i.e no system error). Here's the code: > > ------------------------------------- > class MessageCatalogAddForm(AddForm): > form_fields = Fields(IMessageCatalog) > label = _(u'Add message catalog') > form_fields['language'].custom_widget = LanguageDropDown > > def create(self, data): > msgcat = MessageCatalog(data['language'], data['domain']) > return msgcat > > ------------------------------------- > class LanguageDropDown(DropdownWidget): > > def __init__(self, field, request): > # Simple test to begin with, will use locale when i get this working.. > voc = SimpleVocabulary.fromItems([('de','German'), > ('en','English')]) > super(LanguageDropDown, self).__init__(field, voc, request) > > # Display the readable version, German & English instead of de > & en > def textForValue(self, term): > return term.value > > > ----------------------------------------- > > I think I'm missing something or doing something wrong in > LanguageDropdown.__init__ > > Where does the constraint get checked for this Widget? I keep getting > "Object is of wrong type" but i can't > find in what function this is generated. > > -- View this message in context: http://www.nabble.com/Selectwidgets-%28Object-is-of-wrong-type%29-tf4557862.html#a13011336 Sent from the Zope3 - users mailing list archive at Nabble.com. _______________________________________________ Zope3-users mailing list Zope3-users@zope.org http://mail.zope.org/mailman/listinfo/zope3-users