2016-09-11 1 views
1

J'aivue de style Plone/Zope overrides à Pyramid

  • Add-on produit la définition d'une vue ("ma_vue")
  • Application utilisant ce addon

Les deux applications views.py sont balayées par configurateur lors du démarrage de l'application.

Mon application doit avoir une version plus spécifique de my_view, car le complément générique fourni my_view ne connaît pas les détails spécifiques à l'application. Quel serait un bon modèle de pyramide, alors Pyramid Configurator n'a pas de conflit? Puis-je enregistrer une vue avec le même nom et le contexte plus spécifique IRequest ou quelque chose le long des lignes?

Répondre

1

Si vous souhaitez remplacer une vue, elle "fonctionne" si la vue a été définie dans un addon.

config.include('cool_addon') 
config.add_view(...) 

Cela fonctionne parce que Pyramide verra votre point de vue est plus proche du haut niveau de l'application et a juste priorité sur la vue définie dans cool_addon. Si une structure comme celle-ci ne peut pas être obtenue pour une raison quelconque, l'approche de la force brute est de config.commit() l'ancienne configuration, puis ajoutez votre vue par la suite, à quel point elle écrasera l'ancienne configuration.