ट्रैवर्सल पिरामिड ऐप में, कोई संसाधन डब्ल्यू/__name__
को कैसे देखता है जो दृश्य के नाम से मेल खाता है?पिरामिड ट्रैवर्सल __name__ एक दृश्य नाम से मेल खाता है
यदि मैं संसाधन के लिए कॉल करने योग्य "दृश्य" देखने के लिए जाना चाहता था, तो मैं एक यूआरएल पथ का उपयोग करता हूं जैसे: /foo/bar/view
। यह resource_tree के रूप में तो पार करता:
RootFactory(request) => RootFactory
RootFactory['foo'] => Foo
Foo['bar'] => Bar
Bar['view'] => KeyError
... और क्योंकि यह बार अतीत & 'दृश्य' पार नहीं कर सकते बचता है, यह मानता है कि 'दृश्य' दृश्य नाम है, और मेरे विचार करने के लिए मेल खाता है प्रतिदेय
@view_config(name='view')
def view(context, request):
return Response(context.__name__)
कि पथ मैं request.resource_url(resource, "view"
का उपयोग करेंगे के लिए URL प्राप्त करने के)।
हालांकि, अगर मेरे पास संसाधन था कि Bar.__name__ = "view"
, मैं फू पर "व्यू" के लिए यूआरएल कैसे हल कर सकता हूं?
# path: /foo/view
RootFactory(request) => RootFactory
RootFactory['foo'] => Foo # ideally stop here with view_name="view"
Foo['view'] => Bar.__name__ = "view"
# all parts of path matched so view_name="" and context=Bar
आदर्श रूप में, इस स्थिति में, /foo/view
view(Foo, request)
को इंगित होता है, और /foo/view/view
view(Bar, request)
जहां Bar.__name__ == "view"
को इंगित करेंगे।
__name__
के बीच टकराव के लिए पहचान लिखने और नाम देखने के बिना इसे संभालने का कोई तरीका है?