jazzband/django-hosts

NoReverseMatch: u'admin' is not a registered namespace

NathanUrwin opened this issue ยท 7 comments

[19/Apr/2017 16:15:12] "GET / HTTP/1.1" 302 0
Internal Server Error: /login/
Traceback (most recent call last):
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/core/handlers/exception.py", line 42, in inner
    response = get_response(request)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/core/handlers/base.py", line 217, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/core/handlers/base.py", line 215, in _get_response
    response = response.render()
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/response.py", line 109, in render
    self.content = self.rendered_content
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/response.py", line 86, in rendered_content
    content = template.render(context, self._request)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/backends/django.py", line 66, in render
    return self.template.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 208, in render
    return self._render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/test/utils.py", line 94, in instrumented_test_render
    return self.nodelist.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 994, in render
    bit = node.render_annotated(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/loader_tags.py", line 174, in render
    return compiled_parent._render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/test/utils.py", line 94, in instrumented_test_render
    return self.nodelist.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 994, in render
    bit = node.render_annotated(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/loader_tags.py", line 174, in render
    return compiled_parent._render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/test/utils.py", line 94, in instrumented_test_render
    return self.nodelist.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 994, in render
    bit = node.render_annotated(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/loader_tags.py", line 70, in render
    result = block.nodelist.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 994, in render
    bit = node.render_annotated(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/defaulttags.py", line 315, in render
    return nodelist.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 994, in render
    bit = node.render_annotated(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/loader_tags.py", line 70, in render
    result = block.nodelist.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 994, in render
    bit = node.render_annotated(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/defaulttags.py", line 315, in render
    return nodelist.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 994, in render
    bit = node.render_annotated(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/base.py", line 961, in render_annotated
    return self.render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django_hosts/templatetags/hosts.py", line 45, in render
    path = super(HostURLNode, self).render(context)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/template/defaulttags.py", line 439, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
  File "/home/user/.pyenv/versions/webev.net/lib/python2.7/site-packages/django/urls/base.py", line 87, in reverse
    raise NoReverseMatch("%s is not a registered namespace" % key)
NoReverseMatch: u'admin' is not a registered namespace

website/hosts.py:

from __future__ import unicode_literals

from django_hosts import patterns, host

host_patterns = patterns('',
    host(r'www', 'website.urls', name='www'),
    host(r'admin', 'website.urls.admin', name='admin'),
)

website/urls/__init__.py:

from __future__ import unicode_literals

from django.conf import settings
from django.conf.urls import url, include
from django.views.generic import TemplateView

urlpatterns = [
    url(r'^$', TemplateView.as_view(template_name='index.html'), name='index'),
]
if settings.DEBUG:
    import debug_toolbar
    from django.conf.urls.static import static
    urlpatterns += [url(r'^__debug__/', include(debug_toolbar.urls)),]
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

website/urls/admin.py

from __future__ import unicode_literals

from django.contrib import admin
from django.conf.urls import url, include

urlpatterns = [
    url(r'^', admin.site.urls),
]

What am I doing wrong? Any help is greatly appreciated.

Usage questions aren't answered on the issue tracker.

@NathanUrwin Did you get it solved? I'm also having the same error.

Hey @timgraham, could you kindly let me know where usage questions are answered?

Hey @anuj9196, no I ended up implementing subdomains through the web server layer using NGINX. I have actually moved on to using Flask as well, so best of luck to you!

See TicketClosingReasons/UseSupportChannels for ways to get help with Django usage.

@timgraham this isn't a django question, it's a django-hosts question. Found this issue because I'm having the same problem :(

For anyone else with this problem: What I found worked was adding in an intermediate urls file.

So what I have is:
hosts.py

from django_hosts import patterns, host
from django.conf.urls import include, url
from . import helpdesk_urls, newsletter_urls

host_patterns = patterns('',
    host(r'helpdesk',   helpdesk_urls,   name='helpdesk'),
    host(r'newsletter', newsletter_urls, name='newsletter'),
)

helpdesk_urls.py

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'', include('helpdesk.urls')),
]

Hope that is helpful.

Try remove 'django_hosts.templatetags.hosts_override' from the TEMPLATES['OPTIONS']['builtins'] list and use {% load hosts %} in each template