I am trying to make a link in the sidebar of my Person model as persons. For that I made a templatetags folder where my member_template_tags.py:
from django import template
from member.models import Person
register = template.Library()
@register.inclusion_tag('member/person_list.html')
def get_person_list():
persons= Person.objects.all(),
return {'persons': persons}
and my view file:
class PersonListView(generic.ListView):
model = Person
context_object_name = 'persons'
my person_list.html:
{% extends 'member/base.html' %}
{% block content %}
<h2>Members</h2>
<table>
<tr>
<th>sl.</th>
<th>Name and Position</th>
<th>Photo</th>
<th>Organisation & Address</th>
<th>Contact</th>
</tr>
{% for person in object_list %}
<tr>
<td>{{forloop.counter}}.</td>
<td>{{person.name}}<br>
{{person.present_position}}
</td>
<td><a href="{% url 'member:person-list' %}">
<img src="{{ person.photo_url|default_if_none:'#'}}" class="img-responsive">
</a></td>
<td>
{{person.organization}}<br>
{{person.address}}
</td>
<td>
{{person.tele_land}}<br>
{{person.tele_cell}}<br>
{{person.email}}
</td>
</tr>
</table>
{% endblock %}
and in base.html, sidebar code is:
<div class="col-sm-3 col-md-2 sidebar">
{% block sidebar_block %}
{% get_person_list %}
{% endblock %}
</div>
When I tried it gives following traceback: Template error:
In template /home/ohid/test_venv/alumni/member/templates/member/person_list.html, error at line 0
Reverse for 'registration_register' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
1 : {% extends 'member/base.html' %}
2 :
3 :
4 :
5 : <h2>Members</h2>
6 : <table>
7 :
8 : <tr>
9 : <th>sl.</th>
10 : <th>Name and Position</th>
Traceback:
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/defaulttags.py" in render
507. current_app=current_app)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/urlresolvers.py" in reverse
600. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix
508. (lookup_view_s, args, kwargs, len(patterns), patterns))
During handling of the above exception (Reverse for 'alumni.registration_register' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []), another exception occurred:
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
174. response = self.process_exception_by_middleware(e, request)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
172. response = response.render()
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/response.py" in render
160. self.content = self.rendered_content
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/response.py" in rendered_content
137. content = template.render(context, self._request)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/backends/django.py" in render
95. return self.template.render(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in render
206. return self._render(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in _render
197. return self.nodelist.render(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/loader_tags.py" in render
173. return compiled_parent._render(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in _render
197. return self.nodelist.render(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/defaulttags.py" in render
326. return nodelist.render(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/defaulttags.py" in render
513. six.reraise(*exc_info)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/utils/six.py" in reraise
686. raise value
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/defaulttags.py" in render
499. url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/urlresolvers.py" in reverse
600. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix
508. (lookup_view_s, args, kwargs, len(patterns), patterns))
Exception Type: NoReverseMatch at /person/
Edit:
When I use
<div class="col-sm-3 col-md-2 sidebar">
{% block sidebar_block %}
{% get_person_list persons %}
{% endblock %}
</div>
The same code gives 'get_person_list' received too many positional arguments errors. The new traceback:
Template error:
In template /home/ohid/test_venv/alumni/member/templates/member/base.html, error at line 57
'get_person_list' received too many positional arguments 47 :
48 : </nav>
49 : </div>
50 :
51 : </nav>
52 :
53 : <div class="container-fluid">
54 : <div class="row">
55 : <div class="col-sm-3 col-md-2 sidebar">
56 : {% block sidebar_block %}
57 : {% get_person_list persons %}
58 : {% endblock %}
59 : </div>
60 : <div class="col-sm-9 offset-sm-3 col-md-10 offset-md-2 main">
61 : {% block body_block %}{% endblock %}
62 :
63 :
64 : </div>
65 : </div>
66 : </div>
67 :
Traceback:
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/library.py" in parse_bits
296. unhandled_params.pop(0)
During handling of the above exception (pop from empty list), another exception occurred:
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
174. response = self.process_exception_by_middleware(e, request)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
172. response = response.render()
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/response.py" in render
160. self.content = self.rendered_content
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/response.py" in rendered_content
137. content = template.render(context, self._request)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/backends/django.py" in render
95. return self.template.render(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in render
206. return self._render(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in _render
197. return self.nodelist.render(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/loader_tags.py" in render
151. compiled_parent = self.get_parent(context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/loader_tags.py" in get_parent
148. return self.find_template(parent, context)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/loader_tags.py" in find_template
128. template_name, skip=history,
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/engine.py" in find_template
157. name, template_dirs=dirs, skip=skip,
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/loaders/base.py" in get_template
46. contents, origin, origin.template_name, self.engine,
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in __init__
189. self.nodelist = self.compile_nodelist()
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in compile_nodelist
231. return parser.parse()
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in parse
516. raise self.error(token, e)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in parse
514. compiled_result = compile_func(self, token)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/loader_tags.py" in do_block
241. nodelist = parser.parse(('endblock',))
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in parse
516. raise self.error(token, e)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/base.py" in parse
514. compiled_result = compile_func(self, token)
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/library.py" in compile_func
163. takes_context, function_name,
File "/home/ohid/test_venv/lib/python3.5/site-packages/django/template/library.py" in parse_bits
301. name)
Exception Type: TemplateSyntaxError at /person/
Exception Value: 'get_person_list' received too many positional arguments
How do I fix this error and make link in the sidebar so that it gives the full view of person_list template?
Any help will be much appreciated.