[Zope-CMF] Error trying to add FTI
Jon Edwards
jon@pcgs.freeserve.co.uk
Mon, 22 Apr 2002 17:18:18 +0100
I created a product "Medzope" which had a couple of subproducts - all worked
OK. But now I've added another sub-product (Contact), it doesn't seem to be
registering itself properly, can someone pleeeeease point out my dumb
mistake?
I think the mistake might be in my init.py, where I do the ContentInit -
utils.ContentInit(
'Medzope Content',
content_types = (MedzopeFolder.MedzopeFolder, MedzopeOrg.MedzopeOrg,
Contact.Contact),
permission = ADD_FOLDERS_PERMISSION,
extra_constructors = (MedzopeFolder.addMedzopeFolder,
MedzopeOrg.addMedzopeOrg, Contact.addContact),
fti=(MedzopeFolder.factory_type_information,
MedzopeOrg.factory_type_information, Contact.factory_type_information)
).initialize(context)
Everything seems to initialise without errors, and I can add my new
"Contact" objects through the ZMI. But "Contact" is not listed in the
TypesTool, so I tried to add a new Factory-based Type Information, and
immediately got the following error -
AttributeError
Sorry, a site error occurred.
Traceback (innermost last):
File C:\Program Files\testzope250\lib\python\ZPublisher\Publish.py, line
150, in publish_module
File C:\Program Files\testzope250\lib\python\ZPublisher\Publish.py, line
114, in publish
File C:\Program Files\testzope250\lib\python\Zope\__init__.py, line 158,
in zpublisher_exception_hook
(Object: portal_types)
File C:\Program Files\testzope250\lib\python\ZPublisher\Publish.py, line
98, in publish
File C:\Program Files\testzope250\lib\python\ZPublisher\mapply.py, line
88, in mapply
(Object: manage_addFactoryTIForm)
File C:\Program Files\testzope250\lib\python\ZPublisher\Publish.py, line
39, in call_object
(Object: manage_addFactoryTIForm)
File C:\Program
Files\testzope250\lib\python\Products\CMFCore\TypesTool.py, line 578, in
manage_addFactoryTIForm
(Object: portal_types)
File C:\Program
Files\testzope250\lib\python\Products\CMFCore\TypesTool.py, line 567, in
listDefaultTypeInformation
(Object: portal_types)
AttributeError: 'tuple' object has no attribute 'get'
Looking at TypesTool, I think it's trying to get the meta_type of the FTI?
But it seems that something in the way I initialised it has caused that not
to be stored, or to be stored wrongly? (I've declared both meta_type and
portal_type as Contact in Contact.py)
Any clues gratefully accepted!
Cheers, Jon