On master:bef8558f0e1a73107743417d8b2b772744ed9c28 Steps to reproduce: 1. With Toaster in managed mode, create a project using the master release 2. Go to the all compatible targets page 3. Search for something The page returns this error Environment: Request Method: GET Request URL: http://127.0.0.1:8000/toastergui/targets/?orderby=name%3A%2B&count=100&search=bash&page=1 Django Version: 1.6 Python Version: 2.7.6 Installed Applications: ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.messages', 'django.contrib.sessions', 'django.contrib.admin', 'django.contrib.staticfiles', 'django.contrib.humanize', 'orm', 'toastermain', 'south', 'bldviewer', 'toastergui', 'bldcontrol') Installed Middleware: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware') Template error: In template /home/yocto/master/bitbake/lib/toaster/toastergui/templates/targets.html, error at line 63 'NoneType' object has no attribute 'name' 53 : {% for o in objects %} 54 : <tr class="data"> 55 : <td class="target"> 56 : {{o.name}} 57 : <a target="_blank" href="{{o.get_layersource_view_url}}"><i class="icon-share get-info"></i></a> 58 : </td> 59 : <td class="version">{{o.version}}</td> 60 : <td class="description">{% if o.description %}{{o.description}}{% else %}{{o.summary}}{%endif%}</td> 61 : <td class="recipe-file"> 62 : <code>{{o.file_path}}</code> 63 : <a href=" {{o.get_vcs_link_url}} {{o.file_path}}" target="_blank"><i class="icon-share get-info"></i></a> 64 : </td> 65 : <td class="target-section">{{o.section}}</td> 66 : <td class="license">{{o.license}}</td> 67 : <td class="layer"><a href="{% url 'layerdetails' o.preffered_layerversion.id%}">{{o.preffered_layerversion.layer.name}}</a></td> 68 : <td class="branch"> 69 : {% if o.preffered_layerversion.up_branch %} 70 : {{o.preffered_layerversion.up_branch.name}} 71 : {% else %} 72 : <a class="btn" 73 : data-content="<ul class='unstyled'> Traceback: File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response 114. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/yocto/master/bitbake/lib/toaster/toastergui/views.py" in targets 2758. response = render(request, template, context) File "/usr/local/lib/python2.7/dist-packages/django/shortcuts/__init__.py" in render 53. return HttpResponse(loader.render_to_string(*args, **kwargs), File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" in render_to_string 169. return t.render(context_instance) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 140. return self._render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render 134. return self.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 840. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 78. return node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render 123. return compiled_parent._render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render 134. return self.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 840. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 78. return node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render 123. return compiled_parent._render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render 134. return self.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 840. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 78. return node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render 62. result = block.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 840. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 78. return node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render 62. result = block.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 840. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 78. return node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render 305. return nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render 840. bit = self.render_node(node, context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 78. return node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render 196. nodelist.append(node.render(context)) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render 88. output = self.filter_expression.resolve(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in resolve 585. obj = self.var.resolve(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in resolve 735. value = self._resolve_lookup(context) File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _resolve_lookup 789. current = current() File "/home/yocto/master/bitbake/lib/toaster/orm/models.py" in get_vcs_link_url 557. return self.layer_version.layer.vcs_web_file_base_url.replace('%path%', self.file_path).replace('%branch%', self.layer_version.up_branch.name) Exception Type: AttributeError at /toastergui/targets/ Exception Value: 'NoneType' object has no attribute 'name'
Cannot reproduce on top of adamian/20150309_bugz which was submitted upstream. Must have been fixed by the performance improvements in the targets page.
Yep: it's working in master:7f30749fe026e9ceb75d73b89271145a45a60763
Verified on master: bbc139617637392a9b0fb2e9332a42ad64a4a556