﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
24904	reverse() doesn't allow for nested current_app namespaces	Marten Kenbeek	Marten Kenbeek	"`reverse()` doesn't split the `current_app` on `:` like it does for namespaces in the `viewname`. It directly compares a single namespace ""level"" to the full `current_app` variable. Take the following urlconf:

{{{
blog_patterns = [
    url(r'^comments-one/', include('comments.urls', 'comments-one', 'comments')),
    url(r'^comments-two/', include('comments.urls', 'comments-two', 'comments')),
]

urlpatterns = [
    url(r'^blog-one/', include(blog_patterns, 'blog-one', 'blog')),
    url(r'^blog-two/', include(blog_patterns, 'blog-two', 'blog')),
]
}}}

To reverse urls for `blog-one:comments-one`, without hard-coding the instance namespace in `viewname`, you might assume this would work:

{{{
reverse('blog:comments:view_name', current_app='blog-one:comments-one')
}}}

However, `'blog-one:comments-one'` doesn't  compare equal to either `'blog-one'` or `'comments-one'`, so it will use the default namespace for each namespace nesting level instead, and return `/blog-two/comments-two/...`. 

This also means that this example in the docs won't work for nested namespaces:

{{{
def render_to_response(self, context, **response_kwargs):
    self.request.current_app = self.request.resolver_match.namespace
    return super(DetailView, self).render_to_response(context, **response_kwargs)
}}}"	Bug	closed	Core (URLs)	1.8	Normal	fixed			Ready for checkin	1	0	0	0	0	0
