New error:
Environment:
Request Method: GET
Django Version: 1.8.4
Python Version: 2.7.9
Installed Applications:
('material',
'material.frontend',
'admin_tools',
'admin_tools.theming',
'admin_tools.menu',
'admin_tools.dashboard',
'django.contrib.auth',
'django.contrib.sites',
'django.contrib.admin',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admindocs',
'django_extensions',
'navutils',
'djcopyright',
'registration',
'watchman',
'rest_framework',
'rest_framework_swagger',
'main_core_api',
'geotools',
'tiny_url',
'dashboard_main',
'debug_toolbar')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'material.frontend.middleware.SmoothNavigationMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware')
Template error:
In template /mnt/usb500G/pyProjectsEnv/proGeekAPI/dashboard_main/templates/materials/navutil/material_top_menu.html, error at line 4
'str' object has no attribute 'is_viewable_by'
1 : {% load navutils_tags %}
2 :
3 : {% for menu_node in viewable_nodes %}
4 : {% render_node node=material_top_menu_node user=request.user %}
5 : {% endfor %}
6 :
Traceback:
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
-
response = wrapped_callback(request, _callback_args, *_callback_kwargs)
File "/mnt/usb500G/pyProjectsEnv/proGeekAPI/dashboard_main/views.py" in index
- return render(request, 'home.html')
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/shortcuts.py" in render
-
template_name, context, request=request, using=using)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
-
return template.render(context, request)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/backends/django.py" in render
-
return self.template.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
return self._render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render
-
return self.nodelist.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
bit = self.render_node(node, context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
-
return node.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
-
return compiled_parent._render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render
-
return self.nodelist.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
bit = self.render_node(node, context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
-
return node.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
-
return compiled_parent._render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render
-
return self.nodelist.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
bit = self.render_node(node, context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
-
return node.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
-
result = block.nodelist.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
bit = self.render_node(node, context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
-
return node.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
-
return template.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
return self._render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render
-
return self.nodelist.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
bit = self.render_node(node, context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
-
return node.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
return func(_resolved_args, *_resolved_kwargs)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/navutils/templatetags/navutils_tags.py" in render_menu
-
return t.render(template.Context(final_context))
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/backends/django.py" in render
-
return self.template.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
return self._render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render
-
return self.nodelist.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
bit = self.render_node(node, context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
-
return node.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render
-
nodelist.append(node.render(context))
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
return func(_resolved_args, *_resolved_kwargs)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/navutils/templatetags/navutils_tags.py" in render_node
-
return t.render(template.Context(final_context))
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/backends/django.py" in render
-
return self.template.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
return self._render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render
-
return self.nodelist.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
bit = self.render_node(node, context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
-
return node.render(context)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render
-
nodelist.append(node.render(context))
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/template/base.py" in render
-
return func(_resolved_args, *_resolved_kwargs)
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/navutils/templatetags/navutils_tags.py" in render_node
-
if not node.is_viewable_by(user, context):
Exception Type: AttributeError at /
Exception Value: 'str' object has no attribute 'is_viewable_by'
menu.py
from navutils import menu
main_menu = menu.Menu('main')
menu.register(main_menu)
will be shown to everybody
blog = menu.Node(
id='blog',
label='Blog',
pattern_name='api:index',
template='materials/navutil/material_top_menu.html',
)
main_menu.register(blog)
nodes created with a pattern_name argument will use django reverse
assert blog.get_url() == '/'
if you want to disable reversion, use the url argument
django = menu.Node(
id='django',
label='Django project',
url='http://djangoproject.com',
link_attrs={'target': '_blank'}
)
Each node instance can accept an arbitrary number of children
blog.add(
menu.Node(
id='last_entries',
label='Last entries',
pattern_name='api:index'
)
)
blog.add(
menu.Node(
id='archives',
label='Archives',
pattern_name='api:index'
)
)
menu.html
{% load navutils_tags %}
<nav class="android-navigation mdl-navigation {{ menu.id }}-menu">
{% for menu_node in viewable_nodes %}
{% render_node node=material_top_menu_node user=user %}
{% endfor %}
</nav>
node.html
{% load navutils_tags %}
##<a href="{{ node.get_url }}"{% for attr, value in node.link_attrs.items %} {{ attr }}="{{ value }}"{% endfor %}>{% block node_label %}{{ node.label }}{% endblock %}</a>
New error:
Environment:
Request Method: GET
Django Version: 1.8.4
Python Version: 2.7.9
Installed Applications:
('material',
'material.frontend',
'admin_tools',
'admin_tools.theming',
'admin_tools.menu',
'admin_tools.dashboard',
'django.contrib.auth',
'django.contrib.sites',
'django.contrib.admin',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admindocs',
'django_extensions',
'navutils',
'djcopyright',
'registration',
'watchman',
'rest_framework',
'rest_framework_swagger',
'main_core_api',
'geotools',
'tiny_url',
'dashboard_main',
'debug_toolbar')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'material.frontend.middleware.SmoothNavigationMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware')
Template error:
In template /mnt/usb500G/pyProjectsEnv/proGeekAPI/dashboard_main/templates/materials/navutil/material_top_menu.html, error at line 4
'str' object has no attribute 'is_viewable_by'
1 : {% load navutils_tags %}
2 :
3 : {% for menu_node in viewable_nodes %}
4 : {% render_node node=material_top_menu_node user=request.user %}
5 : {% endfor %}
6 :
Traceback:
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
File "/mnt/usb500G/pyProjectsEnv/proGeekEnv/local/lib/python2.7/site-packages/django/shortcuts.py" in render
Exception Type: AttributeError at /
Exception Value: 'str' object has no attribute 'is_viewable_by'
menu.py
from navutils import menu
main_menu = menu.Menu('main')
menu.register(main_menu)
will be shown to everybody
blog = menu.Node(
id='blog',
label='Blog',
pattern_name='api:index',
template='materials/navutil/material_top_menu.html',
)
main_menu.register(blog)
nodes created with a pattern_name argument will use django reverse
assert blog.get_url() == '/'
if you want to disable reversion, use the url argument
django = menu.Node(
id='django',
label='Django project',
url='http://djangoproject.com',
link_attrs={'target': '_blank'}
)
Each node instance can accept an arbitrary number of children
blog.add(
menu.Node(
id='last_entries',
label='Last entries',
pattern_name='api:index'
)
)
blog.add(
menu.Node(
id='archives',
label='Archives',
pattern_name='api:index'
)
)
menu.html
{% load navutils_tags %} <nav class="android-navigation mdl-navigation {{ menu.id }}-menu"> {% for menu_node in viewable_nodes %} {% render_node node=material_top_menu_node user=user %} {% endfor %} </nav>node.html
{% load navutils_tags %} ##<a href="{{ node.get_url }}"{% for attr, value in node.link_attrs.items %} {{ attr }}="{{ value }}"{% endfor %}>{% block node_label %}{{ node.label }}{% endblock %}</a>