3

I'm working with feinCMS and had added the custom content to the Page, and overridden the render method in the custom content class. The render method is as follows:

    return render_to_string('badge/categories.html', {'categories', self}, context_instance=kwargs.get('context'))

The code in the badge/categories.html template is:

    {% extends "feincms/base.html" %}
    {% load feincms_page_tags %}
    <h2> {{ feincms_page }}</h2>

    {% for item in feincms_page.content.main %}
    {{ item.render }}
    {% endfor %}

The override url of the page is '/'. It works fine if the custom content is not added to the page, but as soon as I add it, it throws the following error:

    Template error:
    In template /home/yogesh/programs/bw-election-badges/apps/templates/includes/top_menu.html, error at line 4
       'str' object has no attribute '_mptt_meta'
       1 : {% load  feincmsext_extended_navigation_tags feincms_page_tags mptt_tags%}
       2 : <div class="nav-collapse collapse">
       3 :   <ul class="nav">
       4 :      {% feincms_nav feincms_page level=1 depth=3 as navitems %} 
       5 :     {% with navitems|siblings_along_path_to:feincms_page as navtree %}
       6 :         {% recursetree navtree %}
       7 :             <li> <a href="{{ node.get_absolute_url }}">{{ node.short_title }}</a></li>
       8 :                 {% if children %}
       9 :                     <div style="margin-left: 20px">{{ children }}</div>
       10 :                 {% endif %}
       11 :         {% endrecursetree %}
       12 :     {% endwith %}
       13 :   </ul>
       14 : </div><!--/.nav-collapse -->


    Traceback:
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
      140.                     response = response.render()
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/response.py" in render
      105.             self.content = self.rendered_content
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/response.py" in rendered_content
      82.         content = template.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      140.             return self._render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in _render
      134.         return self.nodelist.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      830.                 bit = self.render_node(node, context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
      74.             return node.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
      124.         return compiled_parent._render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in _render
      134.         return self.nodelist.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      830.                 bit = self.render_node(node, context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
      74.             return node.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
      63.             result = block.nodelist.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      830.                 bit = self.render_node(node, context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
      74.             return node.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
      156.         return self.render_template(self.template, context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render_template
      138.         output = template.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      140.             return self._render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in _render
      134.         return self.nodelist.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      830.                 bit = self.render_node(node, context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
      74.             return node.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
      54.             result = self.nodelist.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      830.                 bit = self.render_node(node, context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
      74.             return node.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render
      188.                         nodelist.append(node.render(context))
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/debug.py" in render
      84.             output = self.filter_expression.resolve(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in resolve
      578.                 obj = self.var.resolve(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in resolve
      728.             value = self._resolve_lookup(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in _resolve_lookup
      779.                             current = current()
    File "/home/yogesh/programs/bw-election-badges/apps/project/badge/models.py" in render
      33.         return render_to_string('badge/detail.html', {'badge': self}, context_instance=kwargs.get('context'))
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
      172.         return t.render(Context(dictionary))
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      140.             return self._render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in _render
      134.         return self.nodelist.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      830.                 bit = self.render_node(node, context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
      74.             return node.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
      124.         return compiled_parent._render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in _render
      134.         return self.nodelist.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      830.                 bit = self.render_node(node, context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
      74.             return node.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
      63.             result = block.nodelist.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      830.                 bit = self.render_node(node, context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
      74.             return node.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
      156.         return self.render_template(self.template, context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render_template
      138.         output = template.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      140.             return self._render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in _render
      134.         return self.nodelist.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      830.                 bit = self.render_node(node, context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
      74.             return node.render(context)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/django/template/base.py" in render
      1146.                     context[self.target_var] = func(*resolved_args, **resolved_kwargs)
    File "/home/yogesh/programs/env/local/lib/python2.7/site-packages/feincms/module/page/templatetags/feincms_page_tags.py" in feincms_nav
      57.     mptt_opts = feincms_page._mptt_meta

    Exception Type: AttributeError at /
    Exception Value: 'str' object has no attribute '_mptt_meta'
yogkm
  • 649
  • 5
  • 15

1 Answers1

0

you are trying to call a FeinCMS template without FeinCMS objects.

e.g. you have an include templates/includes/top_menu.html which requires feincms_page variable which is missing, therefore it cant generate menu...

You should change a way, how you do this override, there is a chapter in the docs detailing such integrations.

Jerzyk
  • 3,662
  • 23
  • 40