Frage

Ich freue mich auf einen Web-App von Pylonen Pyramide (formal repoze.bfg), weil Traversal wird meine App viel besser als url Versand passen.

Zur Zeit, als ich ein obj mit einer Reihe von Ansichten habe, habe ich die Ansicht Namen voran mit einem ‚+‘ in der URL. z.

/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/

hat Pyramid ein Feature zu handhaben dies eine schöne Art und Weise, aber es nutzt das Präfix „@@“. Gibt es eine Möglichkeit, dies zu ändern, um „+“, so dass ich meine Urls gleich halten (Sie wissen, was sie sagen über kühle Urls,) und verwenden Sie diese Funktion.

War es hilfreich?

Lösung

Ja und nein, können Sie Ansicht Präfix von „@@“ ändern, aber der neuen Präfix auch 2-symbold lang sein sollte, finden Sie unter Quellen traverser.

Vererben ResourceTreeTraverser und dann anstelle des Standard einer Registrierung sollte es tun:

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)

Ich persönlich denke, VIEW_SELECTOR sollten alle Länge Ansicht Präfixe ermöglichen Refactoring werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top