[Zope-CMF] Constructing portal folder based ZClass programmatically
Dieter Maurer
dieter@handshake.de
Wed, 8 May 2002 22:55:34 +0200
Antwan Reijnen writes:
>
> Hi all,
>
> I send this message again, because I forgot to include the error traceback (thanks Dieter!).
>
> I use Zope 2.3.3, and CMF 1.2.
>
> I created a ZClass based on Portal Folder. I used two different methods in a Python Script to add an instance to a portal folder in a portal, and both failed with the same error.
>
> The two methods do however create other portal-content-based ZClasses instances correctly!
>
> The first method goes like this and as said, works correctly for my normal portalcontent based ZClasses:
>
> myPortalFolderInWhichTheContentGoes.invokeFactory
> (type_name='PortalFolderBasedZClassContentType', id='my_folder_based_content')
>
> It complains:
>
> Error Type: TypeError
> Error Value: argument id was ommitted
>
> The second method, which also works correctly for normal portalcontent based ZClasses, goes like this:
>
> context.portal_types.constructContent(type_name='PortalFolderBasedZClassContentType', container=myPortalFolderInWhichTheContentGoes, id='my_folder_based_content')
>
> It also complains:
>
> Error Type: TypeError
> Error Value: argument id was ommitted
>
> It seems that the id-parameter is swallowed somewhere in the proces. Anyone who experienced the same problems?
>
> I hereby attatch the traceback for more clues.
>
> Any clues will be appreciated.
>
> TIA, Antwan.
>
>
>
>
>
> Traceback (innermost last):
> File C:\Program Files\Zope\lib\python\ZPublisher\Publish.py, line 223, in publish_module
> File C:\Program Files\Zope\lib\python\ZPublisher\Publish.py, line 187, in publish
> File C:\Program Files\Zope\lib\python\Zope\__init__.py, line 221, in zpublisher_exception_hook
> (Object: Traversable)
> File C:\Program Files\Zope\lib\python\ZPublisher\Publish.py, line 171, in publish
> File C:\Program Files\Zope\lib\python\ZPublisher\mapply.py, line 160, in mapply
> (Object: addTest)
> File C:\Program Files\Zope\lib\python\ZPublisher\Publish.py, line 112, in call_object
> (Object: addTest)
> File C:\Program Files\Zope\lib\python\Shared\DC\Scripts\Bindings.py, line 324, in __call__
> (Object: addTest)
> File C:\Program Files\Zope\lib\python\Shared\DC\Scripts\Bindings.py, line 354, in _bindAndExec
> (Object: addTest)
> File C:\Program Files\Zope\lib\python\Products\PythonScripts\PythonScript.py, line 336, in _exec
> (Object: addTest)
> (Info: ({'script': <PythonScript instance at 029E32D0>, 'context': <CMFSite instance at 024CFD00>, 'container': <CMFSite instance at 024CFD00>, 'traverse_subpath': []}, (), {}, None))
> File Script (Python), line 9, in addTest
> File C:\Program Files\Zope\lib\python\Products\CMFCore\PortalFolder.py, line 338, in invokeFactory
> (Object: Traversable)
> File C:\Program Files\Zope\lib\python\Products\CMFCore\TypesTool.py, line 712, in constructContent
> (Object: Traversable)
> File C:\Program Files\Zope\lib\python\Products\CMFCore\TypesTool.py, line 439, in constructInstance
> (Object: ElementWithAttributes)
> File C:\Program Files\Zope\lib\python\Shared\DC\Scripts\Bindings.py, line 324, in __call__
> (Object: CMFQCVFolder_add)
> File C:\Program Files\Zope\lib\python\Shared\DC\Scripts\Bindings.py, line 354, in _bindAndExec
> (Object: CMFQCVFolder_add)
> File C:\Program Files\Zope\lib\python\Products\PythonScripts\PythonScript.py, line 336, in _exec
> (Object: CMFQCVFolder_add)
> (Info: ({'script': <PythonScript instance at 02DCB520>, 'context': <FactoryDispatcher instance at 02A1B480>, 'container': <FactoryDispatcher instance at 02A1B480>, 'traverse_subpath': []}, ('qcv',), {}, None))
> File Script (Python), line 4, in CMFQCVFolder_add
> File C:\Program Files\Zope\lib\python\ZClasses\ZClass.py, line 524, in createInObjectManager
> (Object: CMFQCVFolder)
> File C:\Program Files\Zope\lib\python\ZPublisher\mapply.py, line 155, in mapply
> (Object: CMFQCVFolder)
> File C:\Program Files\Zope\lib\python\ZPublisher\mapply.py, line 93, in default_missing_name
> TypeError: (see above)
>
>
>
> Antwan Reijnen
>
> DEXUS New Media
> Metropole Office
> Laan van Meerdervoort 70
> 2517 AN Den Haag
> Tel 070-3114800
> Fax 070-3656279
> http://www.dexus.nl
>
> DEXUS New Media maakt deel uit van de Metropole IT Group
> http://www.metropole-it.nl
>
> ICQ#: 7916222
>
>
>
>
Dieter