Django Custom Template Tag Issue

user3369417

I didnt find an option to get relational instance object from a queryset without help of templatetags, so I am trying as below mentioned using custom template tags in for loop. But getting this error:

 File "D:\Neon_ecl\Projects\shof\shof\smapy\views.py", line 276, in menulist
    'p'     :p
  File "C:\Python27\Scripts\tvapp_env\lib\site-packages\django\shortcuts.py", line 30, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "C:\Python27\Scripts\tvapp_env\lib\site-packages\django\template\loader.py", line 67, in render_to_string
    template = get_template(template_name, using=using)
  File "C:\Python27\Scripts\tvapp_env\lib\site-packages\django\template\loader.py", line 21, in get_template
    return engine.get_template(template_name)
  File "C:\Python27\Scripts\tvapp_env\lib\site-packages\django\template\backends\django.py", line 39, in get_template
    return Template(self.engine.get_template(template_name), self)
  File "C:\Python27\Scripts\tvapp_env\lib\site-packages\django\template\engine.py", line 160, in get_template
    template, origin = self.find_template(template_name)
  File "C:\Python27\Scripts\tvapp_env\lib\site-packages\django\template\engine.py", line 134, in find_template
    name, template_dirs=dirs, skip=skip,
  File "C:\Python27\Scripts\tvapp_env\lib\site-packages\django\template\loaders\base.py", line 44, in get_template
    contents, origin, origin.template_name, self.engine,
  File "C:\Python27\Scripts\tvapp_env\lib\site-packages\django\template\base.py", line 191, in __init__
    self.nodelist = self.compile_nodelist()
  File "C:\Python27\Scripts\tvapp_env\lib\site-packages\django\template\base.py", line 233, in compile_nodelist
    return parser.parse()
  File "C:\Python27\Scripts\tvapp_env\lib\site-packages\django\template\base.py", line 518, in parse
    raise self.error(token, e)
TemplateSyntaxError: Invalid block tag on line 28: 'pdscheck', expected 'empty' or 'endfor'. Did you forget to register or load this tag?

In Template:

  <tbody>{% load smapy_extras %}
  {% for obj in pds %}
    {% pdscheck czpds obj %}
        {{ temppd }}
    {% if obj in p %}<tr style="color:red;">{%else%}
    <tr style="color:grey;">{%endif%}
      <th scope="row">{{ obj.id }}</th>
      <td>{{ obj.pd_name }}</td>
      <td>{{ obj.volume }}</td>
      <td>{{ obj.mrp }}  </td>
      {% if obj in czpds %}<td><input type=submit value="Disable" style="width:100%" onclick="addPds({{shop.id}},{{heading.id}},'pdctg',{{obj.id}})"></form> </td>
    {% else %} <td><input type=submit value="Enable" style="width:100%" onclick="addPds({{shop.id}},{{heading.id}},'pdctg',{{obj.id}})"></form> </td>
    {%endif%}
    </tr>
   {% endfor %} 
    </tbody>

Template Tag File: from django import template

register = template.Library()

@register.filter(name='pdscheck')
def pdscheck(czpds, obj):
    tempctg = 'pdctg'
    temppd = czpds.filter(tempctg=obj)
    return {'temppd': temppd}
Daniel Roseman

You registered a filter, not a tag.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related