Pour n'afficher que certains objets dans la liste des objets disponibles, on peutsurcharger la méthode allmetatypes() de la classe ObjectManager de cette manière :

        def all_meta_types (self):
                """Empeche l'ajout d'autres objets que ceux de type MyObject"""
                return ({'name' : 'MyObject', 'action' : 'manage_addMyObjectForm'},)

Et ainsi, seul l'objet MyObject est disponible dans la liste des produits que l'on peut ajouter.

Zope génère une erreur avec ce code parce qu'il ne connait pas la méthode manage_addMyObjectForm. Il faut la définir en la pointant sur la méthode de la classe visée (MyObject dans ce cas) et de même avec la méthode manage_addMyObject qui créé le produit et l'ajoute dans le conteneur. Ce qui donne au final :

        from MyObject import *
        ...

        ...
        manage_addMyObjectForm = manage_addMyObjectForm
        manage_addMyObject = manage_addMyObject
        def all_meta_types (self):
                """Empeche l'ajout d'autres objets que ceux de type MyObject"""
                return ({'name' : 'MyObject', 'action' : 'manage_addMyObjectForm'},)

Note : L'attribut meta_types dans une classe de type ObjectManager donne la liste des objets que l'on peut ajouter à cet ObjectManager en plus des objets visibles habituellement.