Django: TemplateSyntaxError: Could not parse the remainder

Question:

I am getting this issue when I type localhost:8000/admin/.

`TemplateSyntaxError: Could not parse the remainder: ‘:password_change’ from ‘admin:password_change’. The syntax of ‘url’ changed in Django 1.5, see the docs.

Here’s part of my settings.py:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'grappelli',
    'filebrowser',
    # Uncomment the next line to enable the admin:
     'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    #'django.contrib.admindocs',
     'tinymce',
     'sorl.thumbnail',
     'south',
     'django_facebook',
     'djcelery',
     'devserver',
     'main',
)
AUTH_USER_MODEL = 'django_facebook.FacebookCustomUser'

AUTHENTICATION_BACKENDS = (
    'django_facebook.auth_backends.FacebookBackend', 
    'django.contrib.auth.backends.ModelBackend',
    # Uncomment the following to make Django tests pass:
    'django.contrib.auth.backends.ModelBackend',
)

Did I do anything wrong?

PS: This is my full traceback
https://gist.github.com/anonymous/e8c1359d384df7a6b405

EDIT:

I am pasting the output of grep as per request:

$ ack-grep --type=python -r ':password_change' .
lib/python2.7/site-packages/django/contrib/admin/sites.py
264:url = reverse('admin:password_change_done', current_app=self.name)

lib/python2.7/site-packages/grappelli/dashboard/dashboards.py
147:reverse('%s:password_change' % site_name)],

$ ack-grep --type=html -r ':password_change' .
lib/python2.7/site-packages/django/contrib/admin/templates/admin/base.html
36:<a href="{% url 'admin:password_change' %}">{% trans 'Change password' %}</a> /

lib/python2.7/site-packages/grappelli/templates/admin/includes_grappelli/header.html
12:{% url admin:password_change as password_change_url %} 
Asked By: xpanta

||

Answers:

This error usually means you’ve forgotten a closing quote somewhere in the template you’re trying to render. For example: {% url 'my_view %} (wrong) instead of {% url 'my_view' %} (correct). In this case it’s the colon that’s causing the problem. Normally you’d edit the template to use the correct {% url %} syntax.

But there’s no reason why the django admin site would throw this, since it would know it’s own syntax. My best guess is therefore that grapelli is causing your problem since it changes the admin templates. Does removing grappelli from installed apps help?

Answered By: Garry Cairns

also happens when you use jinja templates (which have different syntax for calling object methods) and you forget to set it in settings.py

Answered By: Michel Samia

Template Syntax Error: is due to many reasons one of them is {{ post.date_posted|date: “F d, Y” }} is the space between colon(:) and quote (“) if u remove the space then it work like this ….. {{ post.date_posted|date:”F d, Y” }}

Answered By: Ziar Khan

In templates/admin/includes_grappelli/header.html, line 12, you forgot to put admin:password_change between '.

The url Django tag syntax should always be like:

{% url 'your_url_name' %}
Answered By: Tms91

There should not be a space after name.

Incorrect:

{% url 'author' name = p.article_author.name.username %}

Correct:

{% url 'author' name=p.article_author.name.username %}
Answered By: user13493827

You have indented part of your code in settings.py:

# Uncomment the next line to enable the admin:
     'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    #'django.contrib.admindocs',
     'tinymce',
     'sorl.thumbnail',
     'south',
     'django_facebook',
     'djcelery',
     'devserver',
     'main',

Therefore, it is giving you an error.

Answered By: advaiyalad

For me it was using {{ }} instead of {% %}:

href="{{ static 'bootstrap.min.css' }}"  # wrong
href="{% static 'bootstrap.min.css' %}"  # right
Answered By: ReemRashwan

Make sure you are using static files and URLs properly

<link href="{% static 'css/semantic.min.css' %}" rel="stylesheet">
  • Check it is properly surrounded with quotation marks or not
  • Check beginning and ending brackets
  • Check tag is closed properly or not
Answered By: MD SHAYON

for me, when I checked if condition:
This made error:

{%if number==10 %}

This solved error:

{% if number == 10 %}  #you may notice about space!
Answered By: De Zin Htang

I got the same error below:

django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: ‘:test’ from ‘my_app1:test’

Because I didn’t use quotes for my_app1:test with url tag as shown below. *Since Django 1.5, quotes have been needed:

<a href="{% url my_app1:test %}">Test</a>
            {% ↑ No quotes  ↑ %}

So, I used quotes for my_app1:test with url tag as shown below, then the error was solved:

<a href="{% url 'my_app1:test' %}">Test</a>
             {% ↑   quotes   ↑ %}