Further reading, from the sidebar in the Traversal chapter, "The Example View Callables Accept Only a Request; How Do I Access the Context Resource?":
https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/traversal.html

In view callables that accept only a request, the context resource found by traversal is available as the context attribute of the request object,
    e.g., ``request.context``.

That chapter is gold for all things traversal, including twenty-seven eight-by-ten color glossy pictures with the circles and arrows and the paragraph on the back of each one.

--steve


On 4/22/20 at 9:27 PM, [email protected] (Bert JW Regeer) pronounced:

Pass the current context. It should have lineage and thus know how to get to where you are right now.

request.resource_url(request.context, '@@create')

Bert JW Regeer

On Apr 22, 2020, at 14:05, Sydo Luciani <[email protected]> wrote:

Back to my original post, fixed the problem with stripping leading slash in 
request.path
in jinja template:
{% set stripped_path = request.path | replace("/", "", 1) %}

And then passed stripped_path to request.resource_url:
href="{{ request.resource_url(request.root, stripped_path, '@@create') }} ">

Please let me know if there is more elegant(Pyramid) way solution.


On Wednesday, 22 April 2020 11:01:22 UTC-5, Sydo Luciani wrote:
Application is using hybrid of traversal and URL dispatch.
Here is the code:
https://github.com/SystematicD/pyramid_wikiz/blob/master/__init__.py#L33
<https://github.com/SystematicD/pyramid_wikiz/blob/master/__init__.py#L33>

currently application working fine, but using session to save and passing around the coming_from_url or next_url is problematic in browsing application in multi tabs.
here is the code that needs to be changed.
https://github.com/SystematicD/pyramid_wikiz/blob/master/templates/top_nav_bar.jinja2#L34
<https://github.com/SystematicD/pyramid_wikiz/blob/master/templates/top_nav_bar.jinja2#L34>

With appending the @@create to the end of full url, then traversed url always stay the same after clicking on create button and no need to save the url in session.

Checking document for generating hybrid:

https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/hybrid.html#generating-
hybrid-urls 
<https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/hybrid.html#generating-
hybrid-urls>

it is not clear how to generate the current application full url.


Thanks


On Wednesday, 22 April 2020 06:39:46 UTC-5, Steve Piercy wrote:
Are you using traversal or URL dispatch?
It seems that you don't want to pass in a `resource` as the first argument to `resource_url`, so perhaps you want to use
https://docs.pylonsproject.org/projects/pyramid/en/latest/api/request.html#pyramid.request.
Request.route_url 
<https://docs.pylonsproject.org/projects/pyramid/en/latest/api/request.html#pyramid.request
.Request.route_url>
?
--steve

On 4/22/20 at 2:18 AM, [email protected] <> (Sydo Luciani) pronounced:
root + path be the resource but passing request.url as resource throws error: href="{{ request.resource_url(request.url , '@@create') }}"> path = [loc.__name__ or '' for loc in lineage(resource)] AttributeError: 'str' object has no attribute '__name__'

On Wednesday, 22 April 2020 04:11:00 UTC-5, Sydo Luciani wrote:
tried href="{{ request.resource_url(request.url , '@@create') }}"> but didn't work and got below error: path = [loc.__name__ or '' for loc in lineage(resource)] AttributeError: 'str' object has no attribute '__name__' Then tried href="{{ request.resource_url(request.root, request.path , '@@create') }}"> that I got double slash problem. Need to generate full URL and then append @@create. root, request.path , '@@create') }}"> On Wednesday, 22 April 2020 02:42:44 UTC-5, Sydo Luciani wrote:
This code: href="{{ request.resource_url(request.root, request.path , '@@create') }}"> Generates below URL: https://domain_name.com:6543/%2FDir_1%2FDir_2/@@create
<https://domain_name.com:6543/%2FDir_1%2FDir_2/@@create> <https://systematicd.com:6543/%2Fwiki%2FDir_2/@@create <https://systematicd.com:6543/%2Fwiki%2FDir_2/@@create>>
After domain_name:port, there is a '/' and a '%2F' which represents another '/'. double slashes after domain name, causing problem in finding the right view and the result is "page not found". Is there a workaround this problem ? Thanks


------------------------ Steve Piercy, Eugene, OR

--
You received this message because you are subscribed to the Google Groups
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to
[email protected] 
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/pylons-discuss/59678cc3-6d83-41f7-85b6-fe77bbe081f5%
40googlegroups.com 
<https://groups.google.com/d/msgid/pylons-discuss/59678cc3-6d83-41f7-85b6-fe77bbe081f5%
40googlegroups.com?utm_medium=email&utm_source=footer>.


------------------------
Steve Piercy, Eugene, OR

--
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pylons-discuss/r480Ps-10126i-CE4A3975A93442529D677B2A93F98E82%40Steves-iMac.local.

Reply via email to