2011-07-21 5 views
3

Je crée pas mal de types de contenu Dextérité (merci zopeskel.dexterity devs !!) mais même si j'ai besoin qu'ils soient de types de contenu différents (recherches, collections ...), certains de ils seront rendus également.Réutiliser le même modèle pour différents types de contenu

Donc, il existe un moyen de réutiliser le même modèle pour différents types de contenu?

Ok, je l'ai fait travailler, mais je me demande si c'est la bonne approche:

from my.product.parent_type import IParentType, ParentType, TwoColumnsView 

... code omitted ... 

# Common folder for templates 
grok.templatedir('parent_type_templates') 

class SameTwoColumnsView(TwoColumnsView): 
    grok.context(CustomClass) 
    grok.require('zope2.View') 

    grok.template("twocolumnsview") 

Toute pensée? Comment réutiliser des modèles sur différents types de contenu?

Répondre

6

Créer une interface pour ceci:

from zope.interface import Interface 

class ITwoColumnViewable(Interface): 
    """Can be viewed in a 2-column layout""" 

Vous assignez ensuite cette interface à vos différents types de contenu, et d'enregistrer la vue de cette interface à la place directement pour un type:

class SameTwoColumnsView(TwoColumnsView): 
    grok.context(ITwoColumnViewable) 
Questions connexes