préfixe Modifier la vue dans la pyramide de traversal « @@ » à « + »
-
09-10-2019 - |
Question
Je cherche à déplacer une application web à partir de Pylônes (officiellement repoze.bfg) parce que traversal s'adaptera mon application beaucoup mieux que l'expédition url.
À l'heure actuelle, quand j'ai un obj avec un certain nombre de vues, je les noms de vue préfixées avec un « + » dans l'URL. par exemple:.
/path/to/obj/ (default view)
/path/to/obj/+custom_view1
/path/to/obj/+custom_view2
/path/to/obj/+edit
/path/to/obj/+delete
/path/to/obj/sub_obj/
pyramide a une fonction pour gérer est une façon agréable, mais il utilise le préfixe « @@ ». Est-il possible de changer cela « + » pour que je puisse garder mes urls même (vous savez ce qu'ils disent au sujet urls cool,) et utiliser cette fonction.
La solution
Oui et non, vous pouvez changer le préfixe de vue de « @@ », mais le nouveau préfixe devrait également être une longueur de 2-symbold, voir sources pour transbordeur.
Dérivation de ResourceTreeTraverser
puis l'enregistrer au lieu de celui par défaut devrait faire l'affaire:
from pyramid.traversal import ResourceTreeTraverser as BaseResourceTreeTraverser
class ResourceTreeTraverser(BaseResourceTreeTraverser):
VIEW_SELECTOR = "++"
from pyramid.config import Configurator
from pyramid.interfaces import ITraverser
from zope.interface import Interface
config = Configurator()
config.registry.registerAdapter(ResourceTreeTraverser, (Interface,), ITraverser)
Personnellement, je pense que VIEW_SELECTOR devrait être refactorisé pour permettre tous les préfixes de vue de la longueur.