Using template files for zope formlib widgets

1 message Options
Embed this post
Permalink
Derek Broughton-3 () Using template files for zope formlib widgets
Reply Threaded More More options
Print post
Permalink
I'm trying to build a formlib widget that uses the Google Search API to
return images related to a given field.

I have the Field defined, extending zope.schema.ASCIIline.  I have a widget,
extending DisplayWidget.  I seem even to be able to hand code the HTML I
want into the return statement of the Widget's __call__().  I'd like to get
the HTML out of the python code, though, and into a page template, and that
I can't do.  Everything I've tried, to use a template results in one or
another error indicating that the context in which the template is expanded
is missing _something_ important.

Most commonly, I end up with errors indicating that the "REQUEST" object
doesn't have an attribute named "other" (see below).

I refuse to believe it isn't possible, but I don't want to tear my hair out,
so somebody please point me to some useful documentation.

Traceback (innermost last):                                                                                                                                
  Module ZPublisher.Publish, line 119, in publish                                                                                                          
  Module ZPublisher.mapply, line 88, in mapply                                                                                                              
  Module ZPublisher.Publish, line 42, in call_object                                                                                                        
  Module zope.formlib.form, line 770, in __call__                                                                                                          
  Module zope.formlib.form, line 764, in render                                                                                                            
  Module plone.app.form._named, line 26, in __call__                                                                                                        
  Module Shared.DC.Scripts.Bindings, line 313, in __call__                                                                                                  
  Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec                                                                                              
  Module Products.PageTemplates.PageTemplateFile, line 129, in _exec                                                                                        
  Module Products.PageTemplates.PageTemplate, line 89, in pt_render                                                                                        
  Module zope.pagetemplate.pagetemplate, line 117, in pt_render                                                                                            
  Module zope.tal.talinterpreter, line 271, in __call__                                                                                                    
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 891, in do_useMacro                                                                                                  
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 536, in do_optTag_tal                                                                                                
  Module zope.tal.talinterpreter, line 521, in do_optTag                                                                                                    
  Module zope.tal.talinterpreter, line 516, in no_tag                                                                                                      
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 891, in do_useMacro                                                                                                  
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 536, in do_optTag_tal                                                                                                
  Module zope.tal.talinterpreter, line 521, in do_optTag                                                                                                    
  Module zope.tal.talinterpreter, line 516, in no_tag                                                                                                      
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 957, in do_defineSlot                                                                                                
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 536, in do_optTag_tal                                                                                                
  Module zope.tal.talinterpreter, line 521, in do_optTag                                                                                                    
  Module zope.tal.talinterpreter, line 516, in no_tag                                                                                                      
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 861, in do_defineMacro                                                                                              
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 949, in do_defineSlot                                                                                                
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 536, in do_optTag_tal                                                                                                
  Module zope.tal.talinterpreter, line 521, in do_optTag                                                                                                    
  Module zope.tal.talinterpreter, line 516, in no_tag                                                                                                      
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 949, in do_defineSlot                                                                                                
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 861, in do_defineMacro                                                                                              
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 861, in do_defineMacro                                                                                              
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 957, in do_defineSlot                                                                                                
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 534, in do_optTag_tal                                                                                                
  Module zope.tal.talinterpreter, line 516, in no_tag                                                                                                      
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 824, in do_loop_tal                                                                                                  
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 536, in do_optTag_tal                                                                                                
  Module zope.tal.talinterpreter, line 521, in do_optTag                                                                                                    
  Module zope.tal.talinterpreter, line 516, in no_tag                                                                                                      
  Module zope.tal.talinterpreter, line 346, in interpret                                                                                                    
  Module zope.tal.talinterpreter, line 745, in do_insertStructure_tal                                                                                      
  Module Products.PageTemplates.Expressions, line 221, in evaluateStructure                                                                                
  Module zope.tales.tales, line 696, in evaluate                                                                                                            
   - URL: pageform                                                                                                                                          
   - Line 109, Column 10                                                                                                                                    
   - Expression: <PathExpr standard:'widget'>                                                                                                              
   - Names:                                                                                                                                                
      {'container': <OBISInstitution at /Plone/data/science/centre-for-
science-advice/obis-canada/obis-data/ARC>,                                          
       'context': <OBISInstitution at /Plone/data/science/centre-for-
science-advice/obis-canada/obis-data/ARC>,                                            
       'default': <object object at 0xb7e3c530>,                                                                                                            
       'here': <OBISInstitution at /Plone/data/science/centre-for-science-
advice/obis-canada/obis-data/ARC>,                                                
       'loop': {'widget': <Products.PageTemplates.Expressions.PathIterator
object at 0xfd033ac>},                                                          
       'nothing': None,                                                                                                                                    
       'options': {'args': ()},                                                                                                                            
       'repeat': <Products.PageTemplates.Expressions.SafeMapping object at
0xff56d6c>,                                                                      
       'request': <HTTPRequest, URL=http://vdc/data/science/centre-for-
science-advice/obis-canada/obis-data/ARC/@@distribution>,
       'root': <Application at >,
       'template': <ImplicitAcquirerWrapper object at 0xfef35cc>,
       'traverse_subpath': [],
       'user': <PloneUser 'broughtond'>,
       'view': <Products.Five.metaclass.SimpleViewClass from
/home/derek/plone/VDC/src/obiscanada/Products/obiscanada/browser/templates/DistributionView.ptobject
at 0x10484f8c>,
       'views': <zope.app.pagetemplate.viewpagetemplatefile.ViewMapper
object at 0xff56bec>}
  Module zope.tales.expressions, line 217, in __call__
  Module Products.PageTemplates.Expressions, line 161, in _eval
  Module Products.PageTemplates.Expressions, line 123, in render
  Module Products.obiscanada.browser.widgets, line 100, in __call__
  Module Shared.DC.Scripts.Bindings, line 313, in __call__
  Module Shared.DC.Scripts.Bindings, line 348, in _bindAndExec
  Module Shared.DC.Scripts.Bindings, line 1, in ?
  Module Shared.DC.Scripts.Bindings, line 293, in _getTraverseSubpath
AttributeError: 'str' object has no attribute 'other'


--
derek



_______________________________________________
Product-Developers mailing list
[hidden email]
http://lists.plone.org/mailman/listinfo/product-developers