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
>
> 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
>
> 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
>
> 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
>>  
>> ? 
>>
>> --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://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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pylons-discuss/59678cc3-6d83-41f7-85b6-fe77bbe081f5%40googlegroups.com.

Reply via email to