Introduction
While running a Django-based application by accessing a certain URL address, there is an appearance of an error message. In short, the error message appear upon executing a certain command. That command is a command for running a Django-based internal service. After typing the command ‘python manage.py runserver’ to do that, there is an error message appear as follows :
django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: ' 'address'' from 'url 'address''
The error message above actually appear at the end of the command execution of running ‘python manage.py runserver’. The following is the actual execution of the command :
C:\python\programming\myproject> python manage.py runserver Performing system checks... System check identified no issues (0 silenced). October 19, 2021 - 16:42:38 Django version 3.2.6, using settings 'core.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. Internal Server Error: /apps/ Traceback (most recent call last): File "C:\app\python39\lib\site-packages\django\core\handlers\exception.py", line 47, in inner response = get_response(request) File "C:\app\python39\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "C:\python\programming\myproject\apps\views.py", line 6, in index return render(request, "apps/index.html") File "C:\app\python39\lib\site-packages\django\shortcuts.py", line 19, in render content = loader.render_to_string(template_name, context, request, using=using) File "C:\app\python39\lib\site-packages\django\template\loader.py", line 61, in render_to_string template = get_template(template_name, using=using) File "C:\app\python39\lib\site-packages\django\template\loader.py", line 15, in get_template return engine.get_template(template_name) File "C:\app\python39\lib\site-packages\django\template\backends\django.py", line 34, in get_template return Template(self.engine.get_template(template_name), self) File "C:\app\python39\lib\site-packages\django\template\engine.py", line 143, in get_template template, origin = self.find_template(template_name) File "C:\app\python39\lib\site-packages\django\template\engine.py", line 125, in find_template template = loader.get_template(name, skip=skip) File "C:\app\python39\lib\site-packages\django\template\loaders\base.py", line 29, in get_template return Template( File "C:\app\python39\lib\site-packages\django\template\base.py", line 155, in __init__ self.nodelist = self.compile_nodelist() File "C:\app\python39\lib\site-packages\django\template\base.py", line 193, in compile_nodelist return parser.parse() File "C:\app\python39\lib\site-packages\django\template\base.py", line 478, in parse raise self.error(token, e) File "C:\app\python39\lib\site-packages\django\template\base.py", line 476, in parse compiled_result = compile_func(self, token) File "C:\app\python39\lib\site-packages\django\template\loader_tags.py", line 278, in do_extends nodelist = parser.parse() File "C:\app\python39\lib\site-packages\django\template\base.py", line 478, in parse raise self.error(token, e) File "C:\app\python39\lib\site-packages\django\template\base.py", line 476, in parse compiled_result = compile_func(self, token) File "C:\app\python39\lib\site-packages\django\template\loader_tags.py", line 216, in do_block nodelist = parser.parse(('endblock',)) File "C:\app\python39\lib\site-packages\django\template\base.py", line 449, in parse raise self.error(token, e) File "C:\app\python39\lib\site-packages\django\template\base.py", line 447, in parse filter_expression = self.compile_filter(token.contents) File "C:\app\python39\lib\site-packages\django\template\base.py", line 563, in compile_filter return FilterExpression(token, self) File "C:\app\python39\lib\site-packages\django\template\base.py", line 662, in __init__ raise TemplateSyntaxError("Could not parse the remainder: '%s' " django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: ' 'structure'' from 'url 'structure'' [19/Oct/2021 16:43:09] "GET /apps/ HTTP/1.1" 500 160830
Solution
For solving the problem, there is a solution which is actually simple. The reason is because the trigger of the error message is just a miss-typed mistake. That mistake is because of the false format on defining an URL address in the template file. In this context, it is a template file as in the above output :
File "C:\python\programming\myproject\apps\views.py", line 6, in index return render(request, "apps/index.html")
Just check the index.html file containing the url ‘structure’. After searching in it, there is a miss-typed mistake found on defining the URL. That URL definition in the index.html causing the error message exist as follows :
django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: ' 'structure'' from 'url 'structure''
What is the actual URL definition in the index.html which is causing the error message ?. The following is that actual URL definition in the index.html :
<li class="nav-item"> <a class="nav-link active" aria-current="page" href="{{ url 'structure' }}">Organization Structure</a> {{ structure }} </li>
The above URL definition actually has a false format or miss-typed which is triggering the error message. This is how the URL definition should have be defined to solve the problem :
<li class="nav-item"> <a class="nav-link active" aria-current="page" href="{% url 'structure' %}">Organization Structure</a> {{ structure }} </li>
So, execute and access the page once more. If there are no further error messages appear, the page will render properly.