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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top